<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>Bobble Fruit: Riferimenti per il file booblefruit.cc</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">Bobble Fruit
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generato da Doxygen 1.8.1.2 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Cerca');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Pagina&#160;Principale</span></a></li>
      <li><a href="annotated.html"><span>Classi</span></a></li>
      <li class="current"><a href="files.html"><span>File</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Cerca" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>Elenco&#160;dei&#160;file</span></a></li>
      <li><a href="globals.html"><span>Elementi&#160;dei&#160;file</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>Tutto</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classi</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>File</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Funzioni</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variabili</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Tipi enumerati (enum)</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Valori del tipo enumerato</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Definizioni</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pagine</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#func-members">Funzioni</a> &#124;
<a href="#var-members">Variabili</a>  </div>
  <div class="headertitle">
<div class="title">Riferimenti per il file booblefruit.cc</div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;allegro5/allegro.h&gt;</code><br/>
<code>#include &lt;allegro5/allegro_font.h&gt;</code><br/>
<code>#include &lt;allegro5/allegro_ttf.h&gt;</code><br/>
<code>#include &lt;allegro5/allegro_native_dialog.h&gt;</code><br/>
<code>#include &lt;allegro5/allegro_primitives.h&gt;</code><br/>
<code>#include &lt;allegro5/allegro_image.h&gt;</code><br/>
<code>#include &lt;allegro5/allegro_audio.h&gt;</code><br/>
<code>#include &lt;allegro5/allegro_acodec.h&gt;</code><br/>
<code>#include &lt;iostream&gt;</code><br/>
<code>#include &lt;sstream&gt;</code><br/>
<code>#include &quot;<a class="el" href="models_8h_source.html">models.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="globali_8h_source.html">globali.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="inizializzazioni_8h_source.html">inizializzazioni.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="collisioni_8h_source.html">collisioni.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="disegno_8h_source.html">disegno.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="debug_8h_source.html">debug.h</a>&quot;</code><br/>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="func-members"></a>
Funzioni</h2></td></tr>
<tr class="memitem:acf58f7eb04ef5a5552190ba8effa6fc9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="booblefruit_8cc.html#acf58f7eb04ef5a5552190ba8effa6fc9">cambia_stato</a> (int &amp;stato, int nuovoStato)</td></tr>
<tr class="memdesc:acf58f7eb04ef5a5552190ba8effa6fc9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Funzione che ci permette di spostarci tra gli stati del gioco.  <a href="#acf58f7eb04ef5a5552190ba8effa6fc9"></a><br/></td></tr>
<tr class="memitem:a0ddf1224851353fc92bfbff6f499fa97"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="booblefruit_8cc.html#a0ddf1224851353fc92bfbff6f499fa97">main</a> (int argc, char *argv[])</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="var-members"></a>
Variabili</h2></td></tr>
<tr class="memitem:abc2af28df56e2e0ce8b168bd4d191ec7"><td class="memItemLeft" align="right" valign="top">ALLEGRO_BITMAP *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="booblefruit_8cc.html#abc2af28df56e2e0ce8b168bd4d191ec7">giocatore</a> [13]</td></tr>
<tr class="memdesc:abc2af28df56e2e0ce8b168bd4d191ec7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Array che contiene gli oggetti di tipo <a class="el" href="structBolle.html">Bolle</a>.  <a href="#abc2af28df56e2e0ce8b168bd4d191ec7"></a><br/></td></tr>
<tr class="memitem:a53a1899713585c2d69c1cede0220720f"><td class="memItemLeft" align="right" valign="top">ALLEGRO_BITMAP *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="booblefruit_8cc.html#a53a1899713585c2d69c1cede0220720f">nemici</a> [4]</td></tr>
<tr class="memdesc:a53a1899713585c2d69c1cede0220720f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Array che contiene gli oggetti di tipo <a class="el" href="structRobot.html">Robot</a>.  <a href="#a53a1899713585c2d69c1cede0220720f"></a><br/></td></tr>
<tr class="memitem:ab23f35d0e343e30c72d88e5e7cfebe14"><td class="memItemLeft" align="right" valign="top">ALLEGRO_BITMAP *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="booblefruit_8cc.html#ab23f35d0e343e30c72d88e5e7cfebe14">bonus</a> [6]</td></tr>
<tr class="memdesc:ab23f35d0e343e30c72d88e5e7cfebe14"><td class="mdescLeft">&#160;</td><td class="mdescRight">Array che contiene gli oggetti di tipo <a class="el" href="structFrutta.html">Frutta</a>.  <a href="#ab23f35d0e343e30c72d88e5e7cfebe14"></a><br/></td></tr>
<tr class="memitem:a5c124d5b3fcfa99f576c784f7d7ad541"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="booblefruit_8cc.html#a5c124d5b3fcfa99f576c784f7d7ad541">prevDir</a> = <a class="el" href="globali_8h.html#a917cb2ad6b731b390f8c57aa48656211aec8379af7490bb9eaaf579cf17876f38">RIGHT</a></td></tr>
<tr class="memdesc:a5c124d5b3fcfa99f576c784f7d7ad541"><td class="mdescLeft">&#160;</td><td class="mdescRight">Variabile per la memorizzazione dell'ultima mossa fatta (movimento a destra o sinistra) Serve per disegnare la posizione del drago a destra o seinistra mentre spara le bolle, in base a quale era la sua posizione precende (mentre si muoveva).  <a href="#a5c124d5b3fcfa99f576c784f7d7ad541"></a><br/></td></tr>
<tr class="memitem:a63da0e90756fc2b6b9af444157e82641"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="booblefruit_8cc.html#a63da0e90756fc2b6b9af444157e82641">prevStato</a> = <a class="el" href="globali_8h.html#af62f0f35361858927524f5221f98b53ba2dcbf54ba35b01b7e8f7dead719007b1">FASE_GIOCO</a></td></tr>
<tr class="memdesc:a63da0e90756fc2b6b9af444157e82641"><td class="mdescLeft">&#160;</td><td class="mdescRight">Variabile per memorizzare se ci troviamo nella <a class="el" href="globali_8h.html#af62f0f35361858927524f5221f98b53ba2dcbf54ba35b01b7e8f7dead719007b1">FASE_GIOCO</a> o <a class="el" href="globali_8h.html#af62f0f35361858927524f5221f98b53bab028ae3406afa9f6bf557c41fd7b04aa">FASE_PAUSA</a>.  <a href="#a63da0e90756fc2b6b9af444157e82641"></a><br/></td></tr>
<tr class="memitem:af20fa3fdc21af9a61bd3c97b60f97292"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="booblefruit_8cc.html#af20fa3fdc21af9a61bd3c97b60f97292">tasti</a> [4] = {false, false, false, false}</td></tr>
<tr class="memdesc:af20fa3fdc21af9a61bd3c97b60f97292"><td class="mdescLeft">&#160;</td><td class="mdescRight">Oggetto di tipo <a class="el" href="structDrago.html">Drago</a> E' l'oggetto che usa il giocatore per interagire con il gioco.  <a href="#af20fa3fdc21af9a61bd3c97b60f97292"></a><br/></td></tr>
<tr class="memitem:acd20d53d39c635e615b4e641868c60cf"><td class="memItemLeft" align="right" valign="top">ALLEGRO_SAMPLE *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="booblefruit_8cc.html#acd20d53d39c635e615b4e641868c60cf">spara</a> = NULL</td></tr>
<tr class="memdesc:acd20d53d39c635e615b4e641868c60cf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Musica ripodotta durante lo sparo della bolle.  <a href="#acd20d53d39c635e615b4e641868c60cf"></a><br/></td></tr>
<tr class="memitem:a86e9b2d51f514215e3748d8a4802b2a3"><td class="memItemLeft" align="right" valign="top">ALLEGRO_SAMPLE *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="booblefruit_8cc.html#a86e9b2d51f514215e3748d8a4802b2a3">perso</a> = NULL</td></tr>
<tr class="memdesc:a86e9b2d51f514215e3748d8a4802b2a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Musica riprodotta una volta sola durante la <a class="el" href="globali_8h.html#af62f0f35361858927524f5221f98b53badec336d4ab5871cd726bd28c8ca423bd">FASE_PERSO</a>.  <a href="#a86e9b2d51f514215e3748d8a4802b2a3"></a><br/></td></tr>
<tr class="memitem:a49ea5e90bd2372ea1f2b7e0e62d19369"><td class="memItemLeft" align="right" valign="top">ALLEGRO_SAMPLE *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="booblefruit_8cc.html#a49ea5e90bd2372ea1f2b7e0e62d19369">titolo</a> = NULL</td></tr>
<tr class="memdesc:a49ea5e90bd2372ea1f2b7e0e62d19369"><td class="mdescLeft">&#160;</td><td class="mdescRight">Musica riprodotta in loop durante la <a class="el" href="globali_8h.html#af62f0f35361858927524f5221f98b53ba56a9dbaf3e0ca086c51f66084ce6f8d8">FASE_TITOLO</a>.  <a href="#a49ea5e90bd2372ea1f2b7e0e62d19369"></a><br/></td></tr>
<tr class="memitem:a2bf1b54583bd7383aad64beeec966e8b"><td class="memItemLeft" align="right" valign="top">ALLEGRO_SAMPLE *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="booblefruit_8cc.html#a2bf1b54583bd7383aad64beeec966e8b">bobblefruit</a> = NULL</td></tr>
<tr class="memdesc:a2bf1b54583bd7383aad64beeec966e8b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Musica riprodotta in loop durante la <a class="el" href="globali_8h.html#af62f0f35361858927524f5221f98b53ba2dcbf54ba35b01b7e8f7dead719007b1">FASE_GIOCO</a>.  <a href="#a2bf1b54583bd7383aad64beeec966e8b"></a><br/></td></tr>
<tr class="memitem:acca6d7935496e6fb1b09221ef3f5572e"><td class="memItemLeft" align="right" valign="top">ALLEGRO_SAMPLE_INSTANCE *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="booblefruit_8cc.html#acca6d7935496e6fb1b09221ef3f5572e">canzoneGioco</a> = NULL</td></tr>
<tr class="memdesc:acca6d7935496e6fb1b09221ef3f5572e"><td class="mdescLeft">&#160;</td><td class="mdescRight">E' una "Playable Instance".  <a href="#acca6d7935496e6fb1b09221ef3f5572e"></a><br/></td></tr>
<tr class="memitem:a456a1efd048535a34867aaeeb6e03aff"><td class="memItemLeft" align="right" valign="top">ALLEGRO_SAMPLE_INSTANCE *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="booblefruit_8cc.html#a456a1efd048535a34867aaeeb6e03aff">canzoneTitolo</a> = NULL</td></tr>
<tr class="memdesc:a456a1efd048535a34867aaeeb6e03aff"><td class="mdescLeft">&#160;</td><td class="mdescRight">E' una "Playable Instance".  <a href="#a456a1efd048535a34867aaeeb6e03aff"></a><br/></td></tr>
<tr class="memitem:ad5ff877f97ce83db08dd3c6905a66330"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structDrago.html">Drago</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="booblefruit_8cc.html#ad5ff877f97ce83db08dd3c6905a66330">drago</a></td></tr>
<tr class="memdesc:ad5ff877f97ce83db08dd3c6905a66330"><td class="mdescLeft">&#160;</td><td class="mdescRight">Oggetto di tipo <a class="el" href="structDrago.html">Drago</a> E' l'oggetto che usa il giocatore per interagire con il gioco.  <a href="#ad5ff877f97ce83db08dd3c6905a66330"></a><br/></td></tr>
<tr class="memitem:ae0081eba65b03226aa248d54612ca7c7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structBolle.html">Bolle</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="booblefruit_8cc.html#ae0081eba65b03226aa248d54612ca7c7">bolle</a> [<a class="el" href="globali_8h.html#a771817d554e60689c49523c8e9349352">NUM_BOLLE</a>]</td></tr>
<tr class="memdesc:ae0081eba65b03226aa248d54612ca7c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Oggetto di tipo <a class="el" href="structBolle.html">Bolle</a> E' un array di elemento <a class="el" href="structBolle.html">Bolle</a> che sono le armi del <a class="el" href="globali_8h.html#ad5ff877f97ce83db08dd3c6905a66330" title="Oggetto di tipo Drago E&#39; l&#39;oggetto che usa il giocatore per interagire con il gioco.">drago</a>, per uccidere i <a class="el" href="globali_8h.html#a3658e8c4b8b7295dc44657c5bdb4f59a" title="Oggetto di tipo Robot E&#39; un array di elemento Robot, sono i nemici del giocatore che deve uccidere...">robot</a> .  <a href="#ae0081eba65b03226aa248d54612ca7c7"></a><br/></td></tr>
<tr class="memitem:aa58faeb3510409ab3fda79f898914c49"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structFrutta.html">Frutta</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="booblefruit_8cc.html#aa58faeb3510409ab3fda79f898914c49">frutta</a> [<a class="el" href="globali_8h.html#a7b2d7007ceeb7bc5683a2ba3a589ff7c">NUM_FRUTTA</a>]</td></tr>
<tr class="memdesc:aa58faeb3510409ab3fda79f898914c49"><td class="mdescLeft">&#160;</td><td class="mdescRight">Oggetto di tipo <a class="el" href="structFrutta.html">Frutta</a> E' un array di elemento <a class="el" href="structFrutta.html">Frutta</a> che sono i bonus del <a class="el" href="globali_8h.html#ad5ff877f97ce83db08dd3c6905a66330" title="Oggetto di tipo Drago E&#39; l&#39;oggetto che usa il giocatore per interagire con il gioco.">drago</a> .  <a href="#aa58faeb3510409ab3fda79f898914c49"></a><br/></td></tr>
<tr class="memitem:a3658e8c4b8b7295dc44657c5bdb4f59a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structRobot.html">Robot</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="booblefruit_8cc.html#a3658e8c4b8b7295dc44657c5bdb4f59a">robot</a> [<a class="el" href="globali_8h.html#a3f522072322d8112dc00ae9aea94ed0a">NUM_ROBOTS</a>]</td></tr>
<tr class="memdesc:a3658e8c4b8b7295dc44657c5bdb4f59a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Oggetto di tipo <a class="el" href="structRobot.html">Robot</a> E' un array di elemento <a class="el" href="structRobot.html">Robot</a>, sono i nemici del giocatore che deve uccidere, per guadagnare punti.  <a href="#a3658e8c4b8b7295dc44657c5bdb4f59a"></a><br/></td></tr>
</table>
<h2>Documentazione delle funzioni</h2>
<a class="anchor" id="acf58f7eb04ef5a5552190ba8effa6fc9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cambia_stato </td>
          <td>(</td>
          <td class="paramtype">int &amp;&#160;</td>
          <td class="paramname"><em>stato</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>nuovoStato</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Funzione che ci permette di spostarci tra gli stati del gioco. </p>
<p>Questa funzione permette di passare attraverso le fasi di gioco come è specificato nella descrizione dell'enum <a class="el" href="globali_8h.html#af62f0f35361858927524f5221f98b53b" title="L&#39;enumerato STATO serve per indicare in quale parte del gioco ci troviamo.">STATO</a> </p>
<p>al_stop_samples(); Fermiamo l'audio riprodotto in fasi del gioco terminate</p>
<p>al_play_sample_instance(canzoneGioco) Riproduciamo l'audio in <a class="el" href="globali_8h.html#af62f0f35361858927524f5221f98b53ba2dcbf54ba35b01b7e8f7dead719007b1">FASE_GIOCO</a></p>
<p>al_stop_sample_instance(canzoneGioco) Fermiamo l'audio riprodotto in <a class="el" href="globali_8h.html#af62f0f35361858927524f5221f98b53ba2dcbf54ba35b01b7e8f7dead719007b1">FASE_GIOCO</a></p>
<p>al_play_sample(perso, 1, 0, 1, ALLEGRO_PLAYMODE_ONCE, 0) Riproduciamo l'audio in <a class="el" href="globali_8h.html#af62f0f35361858927524f5221f98b53badec336d4ab5871cd726bd28c8ca423bd">FASE_PERSO</a> </p>
<div class="fragment"><div class="line">{</div>
<div class="line">        <a class="code" href="debug_8h.html#a330bea9b36f638349fec0d06c8ab4c38">D1</a>(cout&lt;&lt;<span class="stringliteral">&quot;stato = &quot;</span>&lt;&lt;stato&lt;&lt;endl);</div>
<div class="line">        stato = nuovoStato;</div>
<div class="line">        <a class="code" href="debug_8h.html#a330bea9b36f638349fec0d06c8ab4c38">D1</a>(cout&lt;&lt;<span class="stringliteral">&quot;stato nuovo = &quot;</span>&lt;&lt;stato&lt;&lt;endl);</div>
<div class="line">        </div>
<div class="line"></div>
<div class="line">        <span class="keywordflow">if</span>(stato == <a class="code" href="globali_8h.html#af62f0f35361858927524f5221f98b53ba56a9dbaf3e0ca086c51f66084ce6f8d8">FASE_TITOLO</a>)</div>
<div class="line">        {</div>
<div class="line">                al_stop_samples(); </div>
<div class="line">                <a class="code" href="booblefruit_8cc.html#a63da0e90756fc2b6b9af444157e82641" title="Variabile per memorizzare se ci troviamo nella FASE_GIOCO o FASE_PAUSA.">prevStato</a> = <a class="code" href="globali_8h.html#af62f0f35361858927524f5221f98b53ba2dcbf54ba35b01b7e8f7dead719007b1">FASE_GIOCO</a>;</div>
<div class="line">        }</div>
<div class="line">        <span class="keywordflow">else</span> <span class="keywordflow">if</span>(stato == <a class="code" href="globali_8h.html#af62f0f35361858927524f5221f98b53ba2dcbf54ba35b01b7e8f7dead719007b1">FASE_GIOCO</a>)</div>
<div class="line">        {</div>
<div class="line">                <span class="keywordflow">if</span>(<a class="code" href="booblefruit_8cc.html#a63da0e90756fc2b6b9af444157e82641" title="Variabile per memorizzare se ci troviamo nella FASE_GIOCO o FASE_PAUSA.">prevStato</a> == <a class="code" href="globali_8h.html#af62f0f35361858927524f5221f98b53ba2dcbf54ba35b01b7e8f7dead719007b1">FASE_GIOCO</a>)</div>
<div class="line">                {</div>
<div class="line">                        al_stop_sample_instance(<a class="code" href="booblefruit_8cc.html#a456a1efd048535a34867aaeeb6e03aff" title="E&#39; una &quot;Playable Instance&quot;.">canzoneTitolo</a>);</div>
<div class="line">                        <a class="code" href="inizializzazioni_8cc.html#aac2f9ba0bb682085ff1277556064df1c" title="Inizializza i campi di Drago Vengono definiti una volta sola per tutta la durata della FASE_GIOCO...">crea_drago</a>(<a class="code" href="booblefruit_8cc.html#ad5ff877f97ce83db08dd3c6905a66330" title="Oggetto di tipo Drago E&#39; l&#39;oggetto che usa il giocatore per interagire con il gioco.">drago</a>);</div>
<div class="line">                        <a class="code" href="inizializzazioni_8cc.html#abdfef71dc0745fcfda11f3cf1c96aac3" title="Creazione di un array di bolle, una volta per tutte Viene creato inizialmente un&#39;array di tipo Bolle ...">crea_bolle</a>(<a class="code" href="booblefruit_8cc.html#ae0081eba65b03226aa248d54612ca7c7" title="Oggetto di tipo Bolle E&#39; un array di elemento Bolle che sono le armi del drago, per uccidere i robot ...">bolle</a>, <a class="code" href="globali_8h.html#a771817d554e60689c49523c8e9349352" title="Costante del numero di bolle massime gestibili in un array bolle[].">NUM_BOLLE</a>);</div>
<div class="line">                        <a class="code" href="inizializzazioni_8cc.html#ae4ae22d779a39c1caea358194d8c9d5c" title="Crea un array di oggetti di tipo Robot.">crea_robot</a>(<a class="code" href="booblefruit_8cc.html#a3658e8c4b8b7295dc44657c5bdb4f59a" title="Oggetto di tipo Robot E&#39; un array di elemento Robot, sono i nemici del giocatore che deve uccidere...">robot</a>, <a class="code" href="globali_8h.html#a3f522072322d8112dc00ae9aea94ed0a" title="Costante del numero di nemici/robot massimi in array nemici[], presenti sullo schermo.">NUM_ROBOTS</a>);</div>
<div class="line">                        <a class="code" href="inizializzazioni_8cc.html#a90b0fd070a6e31fd436c225d822dbbf7" title="Inizializza l&#39;array di elementi di tipo Frutta.">crea_frutta</a>(<a class="code" href="booblefruit_8cc.html#aa58faeb3510409ab3fda79f898914c49" title="Oggetto di tipo Frutta E&#39; un array di elemento Frutta che sono i bonus del drago .">frutta</a>, <a class="code" href="globali_8h.html#a7b2d7007ceeb7bc5683a2ba3a589ff7c" title="Costante del numero di frutta/dolci massimi in array frutta[], presenti sullo schermo.">NUM_FRUTTA</a>);</div>
<div class="line">                        al_play_sample_instance(<a class="code" href="booblefruit_8cc.html#acca6d7935496e6fb1b09221ef3f5572e" title="E&#39; una &quot;Playable Instance&quot;.">canzoneGioco</a>);</div>
<div class="line">                }</div>
<div class="line">                <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="booblefruit_8cc.html#a63da0e90756fc2b6b9af444157e82641" title="Variabile per memorizzare se ci troviamo nella FASE_GIOCO o FASE_PAUSA.">prevStato</a> == <a class="code" href="globali_8h.html#af62f0f35361858927524f5221f98b53bab028ae3406afa9f6bf557c41fd7b04aa">FASE_PAUSA</a>)</div>
<div class="line">                {</div>
<div class="line">                        al_play_sample_instance(<a class="code" href="booblefruit_8cc.html#acca6d7935496e6fb1b09221ef3f5572e" title="E&#39; una &quot;Playable Instance&quot;.">canzoneGioco</a>);</div>
<div class="line">                }</div>
<div class="line"></div>
<div class="line">        }</div>
<div class="line">        <span class="keywordflow">else</span> <span class="keywordflow">if</span>(stato == <a class="code" href="globali_8h.html#af62f0f35361858927524f5221f98b53bab028ae3406afa9f6bf557c41fd7b04aa">FASE_PAUSA</a>)</div>
<div class="line">        {</div>
<div class="line"></div>
<div class="line">        }</div>
<div class="line">        <span class="keywordflow">else</span> <span class="keywordflow">if</span>(stato == <a class="code" href="globali_8h.html#af62f0f35361858927524f5221f98b53badec336d4ab5871cd726bd28c8ca423bd">FASE_PERSO</a>)</div>
<div class="line">        {</div>
<div class="line">                al_stop_sample_instance(<a class="code" href="booblefruit_8cc.html#acca6d7935496e6fb1b09221ef3f5572e" title="E&#39; una &quot;Playable Instance&quot;.">canzoneGioco</a>);</div>
<div class="line">                al_play_sample(<a class="code" href="booblefruit_8cc.html#a86e9b2d51f514215e3748d8a4802b2a3" title="Musica riprodotta una volta sola durante la FASE_PERSO.">perso</a>, 1, 0, 1, ALLEGRO_PLAYMODE_ONCE, 0);</div>
<div class="line">        }</div>
<div class="line">}</div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="a0ddf1224851353fc92bfbff6f499fa97"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int main </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>argc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>argv</em>[]&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>*Una string stream è una classe del C++ che ti permette di usare una stringa come risorsa e destinazione di dati per uno stream</p>
<p>&lt;Faccio partire il timer</p>
<p>&lt;muovi_drago_sx Muovo il drago a sinistra se è stato premuto la freccia sinistra.</p>
<p>&lt;muovi_drago_dx Muovo il drago a destra se è stato premuto la freccia destra. </p>
<div class="fragment"><div class="line">{</div>
<div class="line">        <span class="keywordtype">bool</span> chiudi_finestra= <span class="keyword">false</span>; <span class="comment">/* Variabile per la gestione della chiusura della finestra di gioco*/</span></div>
<div class="line">        <span class="keywordtype">bool</span> ridisegna = <span class="keyword">true</span>; <span class="comment">/* Variabile che ci indica se è necessario ridisegnare o meno gli oggetti*/</span></div>
<div class="line">        <span class="keyword">const</span> <span class="keywordtype">int</span> FPS = 50; <span class="comment">/*Numero di Frame per Secondo.*/</span></div>
<div class="line"></div>
<div class="line">        <span class="keywordtype">int</span> stato = <a class="code" href="globali_8h.html#af62f0f35361858927524f5221f98b53ba56a9dbaf3e0ca086c51f66084ce6f8d8">FASE_TITOLO</a>; <span class="comment">/* Variabile per la gestione dell&#39;alternarsi della pausa e del gioco*/</span></div>
<div class="line"></div>
<div class="line">        <span class="comment">/*</span></div>
<div class="line"><span class="comment">         *      Sfondi usati nel gioco, sono oggetti di tipo ::Sfondo.</span></div>
<div class="line"><span class="comment">         */</span></div>
<div class="line">        <a class="code" href="structSfondo.html">Sfondo</a> ST;</div>
<div class="line">        <a class="code" href="structSfondo.html">Sfondo</a> SD;</div>
<div class="line">        <a class="code" href="structSfondo.html">Sfondo</a> T1;</div>
<div class="line">        <a class="code" href="structSfondo.html">Sfondo</a> T2;</div>
<div class="line">        <a class="code" href="structSfondo.html">Sfondo</a> STitolo;</div>
<div class="line">        <a class="code" href="structSfondo.html">Sfondo</a> SPerso;</div>
<div class="line"></div>
<div class="line">        </div>
<div class="line">        <span class="comment">/*</span></div>
<div class="line"><span class="comment">         * Variabili di Allegro</span></div>
<div class="line"><span class="comment">         */</span></div>
<div class="line">        ALLEGRO_DISPLAY *display = NULL; <span class="comment">/* Rappresenta il display o finestra di gioco*/</span></div>
<div class="line">        ALLEGRO_EVENT_QUEUE *coda_eventi= NULL; <span class="comment">/* Coda per la gestione degli eventi*/</span></div>
<div class="line">        ALLEGRO_TIMER *timer = NULL; <span class="comment">/* Tipo di dato astratto che rappresenta un oggetto di tipo timer */</span></div>
<div class="line">        </div>
<div class="line">        <span class="comment">/*</span></div>
<div class="line"><span class="comment">         * Font utilizzati nel programma</span></div>
<div class="line"><span class="comment">         */</span></div>
<div class="line">        ALLEGRO_FONT *font2 = NULL; </div>
<div class="line">        ALLEGRO_FONT *font17 = NULL;</div>
<div class="line">        ALLEGRO_FONT *font18 = NULL;</div>
<div class="line">        ALLEGRO_FONT *font4 = NULL;</div>
<div class="line">        </div>
<div class="line">        <span class="comment">/*</span></div>
<div class="line"><span class="comment">         * Sfondi utilizzati nel programma.</span></div>
<div class="line"><span class="comment">         */</span></div>
<div class="line">        ALLEGRO_BITMAP *sfondo1 = NULL;</div>
<div class="line">        ALLEGRO_BITMAP *sfondo2 = NULL;</div>
<div class="line">        ALLEGRO_BITMAP *titolo1 = NULL;</div>
<div class="line">        ALLEGRO_BITMAP *sfondotitolo = NULL;</div>
<div class="line">        ALLEGRO_BITMAP *sfondoperso = NULL;</div>
<div class="line">        ALLEGRO_BITMAP *titolo2 = NULL;</div>
<div class="line"></div>
<div class="line">        ALLEGRO_BITMAP *cuore = NULL;<span class="comment">/* usato per indicare il numero delle vite*/</span></div>
<div class="line"></div>
<div class="line"></div>
<div class="line">        </div>
<div class="line">        <span class="comment">/*</span></div>
<div class="line"><span class="comment">         *      Inizializzazione di allegro. Se fallisce restituisce -1.</span></div>
<div class="line"><span class="comment">         */</span></div>
<div class="line">        assert(al_init());</div>
<div class="line">        </div>
<div class="line">        display = al_create_display(<a class="code" href="globali_8h.html#a9649ab8139c4c2ea5c93625b30d92a05" title="Largezza della finestra di gioco.">WIDTH</a>, <a class="code" href="globali_8h.html#af728b7647e0b8c49832983a31f9a2e9b" title="Altezza della finstra di gioco.">HEIGHT</a>);     </div>
<div class="line"></div>
<div class="line">        assert(display);</div>
<div class="line">        </div>
<div class="line"></div>
<div class="line">        <span class="comment">/*Funzione inclusa in #include &lt;allegro5/allegro_primitives.h&gt;</span></div>
<div class="line"><span class="comment">         * Utilizzata per il disegno delle forme geometriche comuni</span></div>
<div class="line"><span class="comment">         * In questo programma la utilizzo per disegnare le ::Bolle</span></div>
<div class="line"><span class="comment">         */</span></div>
<div class="line">        assert(al_init_primitives_addon());</div>
<div class="line">        </div>
<div class="line">        <span class="comment">/*Installa i driver per la tastiera.</span></div>
<div class="line"><span class="comment">         * Ritorna vero se ha avuto successo, se il driver è già connesso non succede niente e ritorna vero.</span></div>
<div class="line"><span class="comment">         */</span></div>
<div class="line">        assert(al_install_keyboard());</div>
<div class="line">        </div>
<div class="line">        <span class="comment">/*Permette l&#39;utilizzo dei font*/</span></div>
<div class="line">        al_init_font_addon();</div>
<div class="line">        <span class="comment">/*Utilizzato per riconoscere i font caricati .ttf*/</span></div>
<div class="line">        assert(al_init_ttf_addon());</div>
<div class="line">        <span class="comment">/*Supporta il caricamento di immagini di varie estensioni tra cui .png*/</span></div>
<div class="line">        assert(al_init_image_addon());</div>
<div class="line">        </div>
<div class="line">        <span class="comment">/*Installa l&#39;audio subsystem. Ritorna vero se ha avuto successo*/</span></div>
<div class="line">        assert(al_install_audio());</div>
<div class="line">        assert(al_init_acodec_addon());</div>
<div class="line"></div>
<div class="line">        <span class="comment">/*Caricamento delle immagini.png dalla dierctory.</span></div>
<div class="line"><span class="comment">         *Carica le immagini del drago in un array di dimensione uguale al numero di immagini.</span></div>
<div class="line"><span class="comment">        */</span></div>
<div class="line">        <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i= 0; i &lt; 13; i++)</div>
<div class="line">        {</div>
<div class="line">                stringstream str;</div>
<div class="line">                str&lt;&lt;i+1&lt;&lt;<span class="stringliteral">&quot;.png&quot;</span>;</div>
<div class="line">                <a class="code" href="booblefruit_8cc.html#abc2af28df56e2e0ce8b168bd4d191ec7" title="Array che contiene gli oggetti di tipo Bolle.">giocatore</a>[i]= al_load_bitmap(str.str().c_str());</div>
<div class="line">        }</div>
<div class="line"></div>
<div class="line">        <span class="comment">/*Caricamento delle immagini dei robot in un array di dimensioni uguali al numero di immagini*/</span></div>
<div class="line">        <a class="code" href="booblefruit_8cc.html#a53a1899713585c2d69c1cede0220720f" title="Array che contiene gli oggetti di tipo Robot.">nemici</a>[0]= al_load_bitmap(<span class="stringliteral">&quot;e1.png&quot;</span>);</div>
<div class="line">        <a class="code" href="booblefruit_8cc.html#a53a1899713585c2d69c1cede0220720f" title="Array che contiene gli oggetti di tipo Robot.">nemici</a>[1]= al_load_bitmap(<span class="stringliteral">&quot;e2.png&quot;</span>);</div>
<div class="line">        <a class="code" href="booblefruit_8cc.html#a53a1899713585c2d69c1cede0220720f" title="Array che contiene gli oggetti di tipo Robot.">nemici</a>[2]= al_load_bitmap(<span class="stringliteral">&quot;e3.png&quot;</span>);</div>
<div class="line">        <a class="code" href="booblefruit_8cc.html#a53a1899713585c2d69c1cede0220720f" title="Array che contiene gli oggetti di tipo Robot.">nemici</a>[3]= al_load_bitmap(<span class="stringliteral">&quot;e4.png&quot;</span>);</div>
<div class="line">        </div>
<div class="line">        <span class="comment">/*Caricamento delle immagini deilla frutta in un array di dimensioni uguali al numero di immagini*/</span></div>
<div class="line">        <a class="code" href="booblefruit_8cc.html#ab23f35d0e343e30c72d88e5e7cfebe14" title="Array che contiene gli oggetti di tipo Frutta.">bonus</a>[0]= al_load_bitmap(<span class="stringliteral">&quot;t1.png&quot;</span>);</div>
<div class="line">        <a class="code" href="booblefruit_8cc.html#ab23f35d0e343e30c72d88e5e7cfebe14" title="Array che contiene gli oggetti di tipo Frutta.">bonus</a>[1]= al_load_bitmap(<span class="stringliteral">&quot;t2.png&quot;</span>);</div>
<div class="line">        <a class="code" href="booblefruit_8cc.html#ab23f35d0e343e30c72d88e5e7cfebe14" title="Array che contiene gli oggetti di tipo Frutta.">bonus</a>[2]= al_load_bitmap(<span class="stringliteral">&quot;t3.png&quot;</span>);</div>
<div class="line">        <a class="code" href="booblefruit_8cc.html#ab23f35d0e343e30c72d88e5e7cfebe14" title="Array che contiene gli oggetti di tipo Frutta.">bonus</a>[3]= al_load_bitmap(<span class="stringliteral">&quot;t4.png&quot;</span>);</div>
<div class="line">        <a class="code" href="booblefruit_8cc.html#ab23f35d0e343e30c72d88e5e7cfebe14" title="Array che contiene gli oggetti di tipo Frutta.">bonus</a>[4]= al_load_bitmap(<span class="stringliteral">&quot;t5.png&quot;</span>);</div>
<div class="line">        <a class="code" href="booblefruit_8cc.html#ab23f35d0e343e30c72d88e5e7cfebe14" title="Array che contiene gli oggetti di tipo Frutta.">bonus</a>[5]= al_load_bitmap(<span class="stringliteral">&quot;t6.png&quot;</span>);</div>
<div class="line">        </div>
<div class="line">        <span class="comment">/*Acquisizione delle immagini da usare come sfondo*/</span></div>
<div class="line">        sfondo1 = al_load_bitmap(<span class="stringliteral">&quot;sfondo1.png&quot;</span>);</div>
<div class="line">        sfondo2 = al_load_bitmap(<span class="stringliteral">&quot;sfondo2.png&quot;</span>);</div>
<div class="line">        titolo1 = al_load_bitmap(<span class="stringliteral">&quot;bobble.png&quot;</span>);</div>
<div class="line">        titolo2 = al_load_bitmap(<span class="stringliteral">&quot;fruit.png&quot;</span>);</div>
<div class="line">        sfondotitolo = al_load_bitmap(<span class="stringliteral">&quot;sfondotitolo.png&quot;</span>);</div>
<div class="line">        sfondoperso = al_load_bitmap(<span class="stringliteral">&quot;sfondoperso.png&quot;</span>);</div>
<div class="line">        cuore = al_load_bitmap(<span class="stringliteral">&quot;cuore.png&quot;</span>);</div>
<div class="line">        </div>
<div class="line">        <span class="comment">/* Riserva un numero di &quot;sample istance&quot; collegandole al mixer di default.</span></div>
<div class="line"><span class="comment">         * Se non esiste un mixer di default quando la funzione è chimata viene creato automaticamente.</span></div>
<div class="line"><span class="comment">         */</span></div>
<div class="line">        al_reserve_samples(10);</div>
<div class="line"></div>
<div class="line">        <span class="comment">/*Acquisizione dei file audio dalla directory in cui si trovano i file*/</span></div>
<div class="line">        <a class="code" href="booblefruit_8cc.html#a49ea5e90bd2372ea1f2b7e0e62d19369" title="Musica riprodotta in loop durante la FASE_TITOLO.">titolo</a> = al_load_sample(<span class="stringliteral">&quot;titolo.ogg&quot;</span>);</div>
<div class="line">        <a class="code" href="booblefruit_8cc.html#acd20d53d39c635e615b4e641868c60cf" title="Musica ripodotta durante lo sparo della bolle.">spara</a> = al_load_sample(<span class="stringliteral">&quot;spara.ogg&quot;</span>);</div>
<div class="line">        <a class="code" href="booblefruit_8cc.html#a86e9b2d51f514215e3748d8a4802b2a3" title="Musica riprodotta una volta sola durante la FASE_PERSO.">perso</a> = al_load_sample(<span class="stringliteral">&quot;perso.ogg&quot;</span>);</div>
<div class="line">        <a class="code" href="booblefruit_8cc.html#a2bf1b54583bd7383aad64beeec966e8b" title="Musica riprodotta in loop durante la FASE_GIOCO.">bobblefruit</a> = al_load_sample(<span class="stringliteral">&quot;gioco.ogg&quot;</span>);</div>
<div class="line"></div>
<div class="line">        <span class="comment">/* Crea un flusso utilizzando i dati forniti.</span></div>
<div class="line"><span class="comment">         * Deve essere legato a un mixer prima di essere riprodotto.</span></div>
<div class="line"><span class="comment">         */</span></div>
<div class="line">        <a class="code" href="booblefruit_8cc.html#acca6d7935496e6fb1b09221ef3f5572e" title="E&#39; una &quot;Playable Instance&quot;.">canzoneGioco</a> = al_create_sample_instance(<a class="code" href="booblefruit_8cc.html#a2bf1b54583bd7383aad64beeec966e8b" title="Musica riprodotta in loop durante la FASE_GIOCO.">bobblefruit</a>);</div>
<div class="line">        <a class="code" href="booblefruit_8cc.html#a456a1efd048535a34867aaeeb6e03aff" title="E&#39; una &quot;Playable Instance&quot;.">canzoneTitolo</a> = al_create_sample_instance(<a class="code" href="booblefruit_8cc.html#a49ea5e90bd2372ea1f2b7e0e62d19369" title="Musica riprodotta in loop durante la FASE_TITOLO.">titolo</a>);</div>
<div class="line">        </div>
<div class="line">        <span class="comment">/* Imposta la modalità di riproduzione</span></div>
<div class="line"><span class="comment">         * @return truse se ha avuto successo</span></div>
<div class="line"><span class="comment">         */</span></div>
<div class="line">        al_set_sample_instance_playmode(<a class="code" href="booblefruit_8cc.html#acca6d7935496e6fb1b09221ef3f5572e" title="E&#39; una &quot;Playable Instance&quot;.">canzoneGioco</a>, ALLEGRO_PLAYMODE_LOOP);</div>
<div class="line">        al_set_sample_instance_playmode(<a class="code" href="booblefruit_8cc.html#a456a1efd048535a34867aaeeb6e03aff" title="E&#39; una &quot;Playable Instance&quot;.">canzoneTitolo</a>, ALLEGRO_PLAYMODE_LOOP);</div>
<div class="line"></div>
<div class="line">        <span class="comment">/*</span></div>
<div class="line"><span class="comment">         * Lega l&#39;istanza al mixer, che prima non deve essere legata a nienet.</span></div>
<div class="line"><span class="comment">         */</span></div>
<div class="line">        al_attach_sample_instance_to_mixer(<a class="code" href="booblefruit_8cc.html#acca6d7935496e6fb1b09221ef3f5572e" title="E&#39; una &quot;Playable Instance&quot;.">canzoneGioco</a>, al_get_default_mixer());</div>
<div class="line">        al_attach_sample_instance_to_mixer(<a class="code" href="booblefruit_8cc.html#a456a1efd048535a34867aaeeb6e03aff" title="E&#39; una &quot;Playable Instance&quot;.">canzoneTitolo</a>, al_get_default_mixer());</div>
<div class="line"></div>
<div class="line">        <span class="comment">/*</span></div>
<div class="line"><span class="comment">         * Crea una coda vuota di esempi</span></div>
<div class="line"><span class="comment">         * @return il puntatore all&#39;oggetto se ha avuto successo</span></div>
<div class="line"><span class="comment">         * @return NULL se non ha avuto successo.</span></div>
<div class="line"><span class="comment">         */</span></div>
<div class="line">        <span class="keywordflow">if</span>(!(coda_eventi= al_create_event_queue()))</div>
<div class="line">                <a class="code" href="debug_8h.html#a330bea9b36f638349fec0d06c8ab4c38">D1</a>(cout&lt;&lt;<span class="stringliteral">&quot;Coda eventi non creata&quot;</span>&lt;&lt;endl);;</div>
<div class="line">        </div>
<div class="line">        <span class="comment">/*</span></div>
<div class="line"><span class="comment">         * Installa un nuovo timer</span></div>
<div class="line"><span class="comment">         * 1.0 / FPS è in secondo per tick. Deve essere positivo.</span></div>
<div class="line"><span class="comment">         * Il timer inizialmente è fermo.</span></div>
<div class="line"><span class="comment">         * @return puntatore al nuovo oggetto se ha avuto successo</span></div>
<div class="line"><span class="comment">         * @return NULL altrimenti.</span></div>
<div class="line"><span class="comment">         */</span></div>
<div class="line">        <span class="keywordflow">if</span>(!(timer = al_create_timer(1.0 / FPS)))</div>
<div class="line">                <a class="code" href="debug_8h.html#a330bea9b36f638349fec0d06c8ab4c38">D1</a>(cout&lt;&lt;<span class="stringliteral">&quot;Timer non creato&quot;</span>&lt;&lt;endl);;</div>
<div class="line"></div>
<div class="line">        <span class="comment">/* Funzione utilizzata per generare semi diversi per ogni chiamata del rand().*/</span></div>
<div class="line">        srand(time(NULL));</div>
<div class="line">        </div>
<div class="line">        <span class="comment">/*</span></div>
<div class="line"><span class="comment">         * Chiamata alle funzioni di inizializzazione degli oggetti ::Drago, ::Bolle, ::Robot, ::Frutta.</span></div>
<div class="line"><span class="comment">         */</span></div>
<div class="line">        <a class="code" href="inizializzazioni_8cc.html#aac2f9ba0bb682085ff1277556064df1c" title="Inizializza i campi di Drago Vengono definiti una volta sola per tutta la durata della FASE_GIOCO...">crea_drago</a>(<a class="code" href="booblefruit_8cc.html#ad5ff877f97ce83db08dd3c6905a66330" title="Oggetto di tipo Drago E&#39; l&#39;oggetto che usa il giocatore per interagire con il gioco.">drago</a>);</div>
<div class="line">        <a class="code" href="inizializzazioni_8cc.html#abdfef71dc0745fcfda11f3cf1c96aac3" title="Creazione di un array di bolle, una volta per tutte Viene creato inizialmente un&#39;array di tipo Bolle ...">crea_bolle</a>(<a class="code" href="booblefruit_8cc.html#ae0081eba65b03226aa248d54612ca7c7" title="Oggetto di tipo Bolle E&#39; un array di elemento Bolle che sono le armi del drago, per uccidere i robot ...">bolle</a>, <a class="code" href="globali_8h.html#a771817d554e60689c49523c8e9349352" title="Costante del numero di bolle massime gestibili in un array bolle[].">NUM_BOLLE</a>);</div>
<div class="line">        <a class="code" href="inizializzazioni_8cc.html#ae4ae22d779a39c1caea358194d8c9d5c" title="Crea un array di oggetti di tipo Robot.">crea_robot</a>(<a class="code" href="booblefruit_8cc.html#a3658e8c4b8b7295dc44657c5bdb4f59a" title="Oggetto di tipo Robot E&#39; un array di elemento Robot, sono i nemici del giocatore che deve uccidere...">robot</a>, <a class="code" href="globali_8h.html#a3f522072322d8112dc00ae9aea94ed0a" title="Costante del numero di nemici/robot massimi in array nemici[], presenti sullo schermo.">NUM_ROBOTS</a>);</div>
<div class="line">        <a class="code" href="inizializzazioni_8cc.html#a90b0fd070a6e31fd436c225d822dbbf7" title="Inizializza l&#39;array di elementi di tipo Frutta.">crea_frutta</a>(<a class="code" href="booblefruit_8cc.html#aa58faeb3510409ab3fda79f898914c49" title="Oggetto di tipo Frutta E&#39; un array di elemento Frutta che sono i bonus del drago .">frutta</a>, <a class="code" href="globali_8h.html#a7b2d7007ceeb7bc5683a2ba3a589ff7c" title="Costante del numero di frutta/dolci massimi in array frutta[], presenti sullo schermo.">NUM_FRUTTA</a>);</div>
<div class="line">        </div>
<div class="line">        <span class="comment">/* Chiamata alle funzione di inizializzazione degli sfondi*/</span></div>
<div class="line">        <a class="code" href="inizializzazioni_8cc.html#a414eced56226529f3caf845827f8498a" title="Inizializza i campi dell&#39;oggetto Sfondo.">crea_sfondo</a>(SD, 0, 0, 1, 0, 800, 700, -1, 1, sfondo1);</div>
<div class="line">        <a class="code" href="inizializzazioni_8cc.html#a414eced56226529f3caf845827f8498a" title="Inizializza i campi dell&#39;oggetto Sfondo.">crea_sfondo</a>(ST, 0, 0, 0, 2, 500, 1400, 1, -1, sfondo2);</div>
<div class="line">        <a class="code" href="inizializzazioni_8cc.html#a414eced56226529f3caf845827f8498a" title="Inizializza i campi dell&#39;oggetto Sfondo.">crea_sfondo</a>(T1, 0, 0, 0, 0, 500, 700, 1, 1, titolo1);</div>
<div class="line">        <a class="code" href="inizializzazioni_8cc.html#a414eced56226529f3caf845827f8498a" title="Inizializza i campi dell&#39;oggetto Sfondo.">crea_sfondo</a>(T2, 0, 0, 0, 0, 500, 700, 1, 1, titolo2);</div>
<div class="line">        <a class="code" href="inizializzazioni_8cc.html#a414eced56226529f3caf845827f8498a" title="Inizializza i campi dell&#39;oggetto Sfondo.">crea_sfondo</a>(STitolo, 0, 0, 1, 0, 800, 700, -1, 1, sfondotitolo);</div>
<div class="line">        <a class="code" href="inizializzazioni_8cc.html#a414eced56226529f3caf845827f8498a" title="Inizializza i campi dell&#39;oggetto Sfondo.">crea_sfondo</a>(SPerso, 0, 0, 1, 0, 800, 700, -1, 1, sfondoperso);</div>
<div class="line">        </div>
<div class="line">        <span class="comment">/* Caricamento dei font .ttf presenti nella directory corrente*/</span></div>
<div class="line">        font17 = al_load_font(<span class="stringliteral">&quot;ciccio.ttf&quot;</span>, 80, 0);</div>
<div class="line">        font18 = al_load_font(<span class="stringliteral">&quot;orbitron_black.ttf&quot;</span>, 18, 0);</div>
<div class="line">        font2 = al_load_font(<span class="stringliteral">&quot;orbitron_black.ttf&quot;</span>, 17, 0);</div>
<div class="line">        font4 = al_load_font(<span class="stringliteral">&quot;Explosive.ttf&quot;</span>, 57, 0);   </div>
<div class="line"></div>
<div class="line">        <span class="comment">/*</span></div>
<div class="line"><span class="comment">         * Indico gli eventi che devono essere registrati nella coda di eventi</span></div>
<div class="line"><span class="comment">         * preventivamente creata.</span></div>
<div class="line"><span class="comment">         */</span></div>
<div class="line">        al_register_event_source(coda_eventi, al_get_keyboard_event_source());</div>
<div class="line">        al_register_event_source(coda_eventi, al_get_timer_event_source(timer));</div>
<div class="line">        al_register_event_source(coda_eventi, al_get_display_event_source(display));</div>
<div class="line"></div>
<div class="line">        al_start_timer(timer);</div>
<div class="line">        <span class="keywordflow">while</span>(!chiudi_finestra)</div>
<div class="line">        {</div>
<div class="line">                <a class="code" href="debug_8h.html#a975397c373ae2a9dc28d0297fa18da56">D2</a>(cout&lt;&lt;<span class="stringliteral">&quot;Chiudi finestra = &quot;</span>&lt;&lt;chiudi_finestra&lt;&lt;endl);</div>
<div class="line">                ALLEGRO_EVENT evento;</div>
<div class="line">                al_wait_for_event(coda_eventi, &amp;evento);</div>
<div class="line"></div>
<div class="line">                <span class="comment">/*</span></div>
<div class="line"><span class="comment">                 * Entro in questo if se l&#39;evento è di tipo EVENT_TIMER</span></div>
<div class="line"><span class="comment">                 */</span></div>
<div class="line">                <span class="keywordflow">if</span>(evento.type == ALLEGRO_EVENT_TIMER)</div>
<div class="line">                {</div>
<div class="line">                        ridisegna = <span class="keyword">true</span>;</div>
<div class="line">                        <span class="comment">/* Controllo quali tasti sono stati premuti*/</span></div>
<div class="line">                        <span class="keywordflow">if</span>(<a class="code" href="booblefruit_8cc.html#af20fa3fdc21af9a61bd3c97b60f97292" title="Oggetto di tipo Drago E&#39; l&#39;oggetto che usa il giocatore per interagire con il gioco.">tasti</a>[<a class="code" href="globali_8h.html#a917cb2ad6b731b390f8c57aa48656211adb45120aafd37a973140edee24708065">LEFT</a>])</div>
<div class="line">                                <a class="code" href="disegno_8cc.html#af5c56067b81879502cbb19277ff3fd90" title="Muove l&#39;indice per lo spostamento del drago.">muovi_drago_sx</a>(<a class="code" href="booblefruit_8cc.html#ad5ff877f97ce83db08dd3c6905a66330" title="Oggetto di tipo Drago E&#39; l&#39;oggetto che usa il giocatore per interagire con il gioco.">drago</a>);</div>
<div class="line">                        <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="booblefruit_8cc.html#af20fa3fdc21af9a61bd3c97b60f97292" title="Oggetto di tipo Drago E&#39; l&#39;oggetto che usa il giocatore per interagire con il gioco.">tasti</a>[<a class="code" href="globali_8h.html#a917cb2ad6b731b390f8c57aa48656211aec8379af7490bb9eaaf579cf17876f38">RIGHT</a>])</div>
<div class="line">                                <a class="code" href="disegno_8cc.html#acd60b4c44837dc5cdfe7ebb9b5a0baa4" title="Muove l&#39;indice per lo spostamento del drago.">muovi_drago_dx</a>(<a class="code" href="booblefruit_8cc.html#ad5ff877f97ce83db08dd3c6905a66330" title="Oggetto di tipo Drago E&#39; l&#39;oggetto che usa il giocatore per interagire con il gioco.">drago</a>);</div>
<div class="line">                        <span class="comment">/* Nel caso in cui mi trovo nella ::FASE_TITOLO aggiorno gli sfondi e riproduco l&#39;audio ::canzoneTitolo*/</span></div>
<div class="line">                        <span class="keywordflow">if</span>(stato == <a class="code" href="globali_8h.html#af62f0f35361858927524f5221f98b53ba56a9dbaf3e0ca086c51f66084ce6f8d8">FASE_TITOLO</a>)</div>
<div class="line">                        {</div>
<div class="line">                                al_play_sample_instance(<a class="code" href="booblefruit_8cc.html#a456a1efd048535a34867aaeeb6e03aff" title="E&#39; una &quot;Playable Instance&quot;.">canzoneTitolo</a>);</div>
<div class="line">                                <a class="code" href="disegno_8cc.html#a28c727a6864f0bafac48e6749b0028d3" title="Aggiorna la posizione dello sfondo.">update_sfondo</a>(STitolo);</div>
<div class="line">                        }</div>
<div class="line">                        </div>
<div class="line">                        <span class="comment">/*Nel caso in cui mi trovo nella ::FASE_GIOCO aggiorno gli sfondi e riproduco l&#39;audio ::canzoneTitolo</span></div>
<div class="line"><span class="comment">                         * Gestisco le collisioni possibili e inizializzo la partenza di nuovi robot e frutta.</span></div>
<div class="line"><span class="comment">                         * Controllo che le collisioni non abbiano ucciso il ::drago .</span></div>
<div class="line"><span class="comment">                         */</span>                     </div>
<div class="line">                        <span class="keywordflow">else</span> <span class="keywordflow">if</span>(stato == <a class="code" href="globali_8h.html#af62f0f35361858927524f5221f98b53ba2dcbf54ba35b01b7e8f7dead719007b1">FASE_GIOCO</a>)</div>
<div class="line">                        {</div>
<div class="line">                                <a class="code" href="disegno_8cc.html#a28c727a6864f0bafac48e6749b0028d3" title="Aggiorna la posizione dello sfondo.">update_sfondo</a>(ST);</div>
<div class="line">                                <a class="code" href="disegno_8cc.html#a28c727a6864f0bafac48e6749b0028d3" title="Aggiorna la posizione dello sfondo.">update_sfondo</a>(SD);</div>
<div class="line"></div>
<div class="line">                                <a class="code" href="disegno_8cc.html#a8e59be8b3d1c7649d8f62086ae9a1203" title="Modifica la y delle bolle vive, decrementandola.">update_bolle</a>(<a class="code" href="booblefruit_8cc.html#ae0081eba65b03226aa248d54612ca7c7" title="Oggetto di tipo Bolle E&#39; un array di elemento Bolle che sono le armi del drago, per uccidere i robot ...">bolle</a>, <a class="code" href="globali_8h.html#a771817d554e60689c49523c8e9349352" title="Costante del numero di bolle massime gestibili in un array bolle[].">NUM_BOLLE</a>);</div>
<div class="line">                                <a class="code" href="disegno_8cc.html#a7893cd4316b1ce28f6eefe8a2bf089db" title="Fa nascere un nuovo Robot.">inizializza_partenza_robot</a>(<a class="code" href="booblefruit_8cc.html#a3658e8c4b8b7295dc44657c5bdb4f59a" title="Oggetto di tipo Robot E&#39; un array di elemento Robot, sono i nemici del giocatore che deve uccidere...">robot</a>, <a class="code" href="globali_8h.html#a3f522072322d8112dc00ae9aea94ed0a" title="Costante del numero di nemici/robot massimi in array nemici[], presenti sullo schermo.">NUM_ROBOTS</a>);</div>
<div class="line">                                <a class="code" href="disegno_8cc.html#a4df53e9dbff78f3da6985c756f086f2e" title="Per ogni frutto non vivo viene generata un partenza &quot;random&quot;.">inizializza_partenza_frutta</a>(<a class="code" href="booblefruit_8cc.html#aa58faeb3510409ab3fda79f898914c49" title="Oggetto di tipo Frutta E&#39; un array di elemento Frutta che sono i bonus del drago .">frutta</a>, <a class="code" href="globali_8h.html#a7b2d7007ceeb7bc5683a2ba3a589ff7c" title="Costante del numero di frutta/dolci massimi in array frutta[], presenti sullo schermo.">NUM_FRUTTA</a>);</div>
<div class="line">                                <a class="code" href="disegno_8cc.html#ab88b96f74e27635fddd1e826f67c3cc1" title="Aggiorna la posizione dei robot e anche le Sprite del robot, rispettado il ritardo impostato...">update_robot</a>(<a class="code" href="booblefruit_8cc.html#a3658e8c4b8b7295dc44657c5bdb4f59a" title="Oggetto di tipo Robot E&#39; un array di elemento Robot, sono i nemici del giocatore che deve uccidere...">robot</a>, <a class="code" href="globali_8h.html#a3f522072322d8112dc00ae9aea94ed0a" title="Costante del numero di nemici/robot massimi in array nemici[], presenti sullo schermo.">NUM_ROBOTS</a>);</div>
<div class="line">                                <a class="code" href="disegno_8cc.html#a98df7787b5691ee5ef06684680d7093a" title="Per ogni frutto/dolce vivo ne aggiorna la posizione.">update_frutta</a>(<a class="code" href="booblefruit_8cc.html#aa58faeb3510409ab3fda79f898914c49" title="Oggetto di tipo Frutta E&#39; un array di elemento Frutta che sono i bonus del drago .">frutta</a>, <a class="code" href="globali_8h.html#a7b2d7007ceeb7bc5683a2ba3a589ff7c" title="Costante del numero di frutta/dolci massimi in array frutta[], presenti sullo schermo.">NUM_FRUTTA</a>);</div>
<div class="line">                                <a class="code" href="collisioni_8cc.html#a12edf1ba950aa73c89fc9fbf5df6abe0" title="Funzione che gestisce la collisione tra le bolle e o robot, o la frutta/dolci.">gestisci_collisione_bolle</a>(<a class="code" href="booblefruit_8cc.html#ae0081eba65b03226aa248d54612ca7c7" title="Oggetto di tipo Bolle E&#39; un array di elemento Bolle che sono le armi del drago, per uccidere i robot ...">bolle</a>, <a class="code" href="globali_8h.html#a771817d554e60689c49523c8e9349352" title="Costante del numero di bolle massime gestibili in un array bolle[].">NUM_BOLLE</a>, <a class="code" href="booblefruit_8cc.html#a3658e8c4b8b7295dc44657c5bdb4f59a" title="Oggetto di tipo Robot E&#39; un array di elemento Robot, sono i nemici del giocatore che deve uccidere...">robot</a>, <a class="code" href="globali_8h.html#a3f522072322d8112dc00ae9aea94ed0a" title="Costante del numero di nemici/robot massimi in array nemici[], presenti sullo schermo.">NUM_ROBOTS</a>, <a class="code" href="booblefruit_8cc.html#aa58faeb3510409ab3fda79f898914c49" title="Oggetto di tipo Frutta E&#39; un array di elemento Frutta che sono i bonus del drago .">frutta</a>, <a class="code" href="globali_8h.html#a7b2d7007ceeb7bc5683a2ba3a589ff7c" title="Costante del numero di frutta/dolci massimi in array frutta[], presenti sullo schermo.">NUM_FRUTTA</a>, <a class="code" href="booblefruit_8cc.html#ad5ff877f97ce83db08dd3c6905a66330" title="Oggetto di tipo Drago E&#39; l&#39;oggetto che usa il giocatore per interagire con il gioco.">drago</a>);</div>
<div class="line">                                <a class="code" href="collisioni_8cc.html#a5bdadd9b95a94192be51933f90730b21" title="Gestisce le collisione del robot con il drago o con il suolo.">gestisci_collisioni_robot</a>(<a class="code" href="booblefruit_8cc.html#a3658e8c4b8b7295dc44657c5bdb4f59a" title="Oggetto di tipo Robot E&#39; un array di elemento Robot, sono i nemici del giocatore che deve uccidere...">robot</a>, <a class="code" href="globali_8h.html#a3f522072322d8112dc00ae9aea94ed0a" title="Costante del numero di nemici/robot massimi in array nemici[], presenti sullo schermo.">NUM_ROBOTS</a>, <a class="code" href="booblefruit_8cc.html#ad5ff877f97ce83db08dd3c6905a66330" title="Oggetto di tipo Drago E&#39; l&#39;oggetto che usa il giocatore per interagire con il gioco.">drago</a>);</div>
<div class="line">                                <a class="code" href="collisioni_8cc.html#a1a755dbf67a837739df151394b4a96b6" title="Gestisce la collisione della frutta/dolce con ciascuna bolla o con il drago o con il pavimento...">gestisci_collisioni_frutta</a>(<a class="code" href="booblefruit_8cc.html#aa58faeb3510409ab3fda79f898914c49" title="Oggetto di tipo Frutta E&#39; un array di elemento Frutta che sono i bonus del drago .">frutta</a>, <a class="code" href="globali_8h.html#a7b2d7007ceeb7bc5683a2ba3a589ff7c" title="Costante del numero di frutta/dolci massimi in array frutta[], presenti sullo schermo.">NUM_FRUTTA</a>, <a class="code" href="booblefruit_8cc.html#ad5ff877f97ce83db08dd3c6905a66330" title="Oggetto di tipo Drago E&#39; l&#39;oggetto che usa il giocatore per interagire con il gioco.">drago</a>);</div>
<div class="line">                        </div>
<div class="line">                                <span class="keywordflow">if</span>(<a class="code" href="booblefruit_8cc.html#ad5ff877f97ce83db08dd3c6905a66330" title="Oggetto di tipo Drago E&#39; l&#39;oggetto che usa il giocatore per interagire con il gioco.">drago</a>.<a class="code" href="structDrago.html#a3ee078b1fc05ba5e3738f201f6aecede" title="l&#39;oggetto ha un numero di vite finite le quali muore">vite</a> &lt;= 0)</div>
<div class="line">                                        <a class="code" href="booblefruit_8cc.html#acf58f7eb04ef5a5552190ba8effa6fc9" title="Funzione che ci permette di spostarci tra gli stati del gioco.">cambia_stato</a>(stato, <a class="code" href="globali_8h.html#af62f0f35361858927524f5221f98b53badec336d4ab5871cd726bd28c8ca423bd">FASE_PERSO</a>);</div>
<div class="line">                        }</div>
<div class="line">                        <span class="keywordflow">else</span> <span class="keywordflow">if</span>(stato == <a class="code" href="globali_8h.html#af62f0f35361858927524f5221f98b53bab028ae3406afa9f6bf557c41fd7b04aa">FASE_PAUSA</a>)</div>
<div class="line">                        {</div>
<div class="line">                        }</div>
<div class="line">                        <span class="keywordflow">else</span> <span class="keywordflow">if</span>(stato == <a class="code" href="globali_8h.html#af62f0f35361858927524f5221f98b53badec336d4ab5871cd726bd28c8ca423bd">FASE_PERSO</a>)</div>
<div class="line">                        {</div>
<div class="line">                                <a class="code" href="disegno_8cc.html#a28c727a6864f0bafac48e6749b0028d3" title="Aggiorna la posizione dello sfondo.">update_sfondo</a>(SPerso);</div>
<div class="line">                        }</div>
<div class="line">                }</div>
<div class="line">                <span class="comment">/*Chiudo la finestra di gioco se è stata chiusa*/</span></div>
<div class="line">                <span class="keywordflow">else</span> <span class="keywordflow">if</span>(evento.type == ALLEGRO_EVENT_DISPLAY_CLOSE)</div>
<div class="line">                {</div>
<div class="line">                        chiudi_finestra= <span class="keyword">true</span>;</div>
<div class="line">                }</div>
<div class="line">                <span class="comment">/*</span></div>
<div class="line"><span class="comment">                 * Gestisco per ogni tatso l&#39;azione corrispondente, anche in funzione a quale fase di gioco mi trovo.</span></div>
<div class="line"><span class="comment">                 */</span></div>
<div class="line">                <span class="keywordflow">else</span> <span class="keywordflow">if</span>(evento.type == ALLEGRO_EVENT_KEY_DOWN)</div>
<div class="line">                {</div>
<div class="line">                        <span class="keywordflow">switch</span>(evento.keyboard.keycode)</div>
<div class="line">                        {</div>
<div class="line">                        <span class="keywordflow">case</span> ALLEGRO_KEY_ESCAPE:</div>
<div class="line">                                chiudi_finestra= <span class="keyword">true</span>;</div>
<div class="line">                                <span class="keywordflow">break</span>;</div>
<div class="line">                        <span class="keywordflow">case</span> ALLEGRO_KEY_LEFT:</div>
<div class="line">                                <span class="keywordflow">if</span>(stato != <a class="code" href="globali_8h.html#af62f0f35361858927524f5221f98b53bab028ae3406afa9f6bf557c41fd7b04aa">FASE_PAUSA</a>)</div>
<div class="line">                                {</div>
<div class="line">                                        <a class="code" href="booblefruit_8cc.html#af20fa3fdc21af9a61bd3c97b60f97292" title="Oggetto di tipo Drago E&#39; l&#39;oggetto che usa il giocatore per interagire con il gioco.">tasti</a>[<a class="code" href="globali_8h.html#a917cb2ad6b731b390f8c57aa48656211adb45120aafd37a973140edee24708065">LEFT</a>] = <span class="keyword">true</span>;</div>
<div class="line">                                        <a class="code" href="booblefruit_8cc.html#ad5ff877f97ce83db08dd3c6905a66330" title="Oggetto di tipo Drago E&#39; l&#39;oggetto che usa il giocatore per interagire con il gioco.">drago</a>.<a class="code" href="structDrago.html#a425cbb3ff8d099f8a993b20fe8fecb07">frameAttuale</a> = 5;</div>
<div class="line">                                        <a class="code" href="booblefruit_8cc.html#ad5ff877f97ce83db08dd3c6905a66330" title="Oggetto di tipo Drago E&#39; l&#39;oggetto che usa il giocatore per interagire con il gioco.">drago</a>.<a class="code" href="structDrago.html#a1e76dfe9fa086b32df87582070857f51">maxFrame</a> = 9;</div>
<div class="line">                                        <a class="code" href="booblefruit_8cc.html#a5c124d5b3fcfa99f576c784f7d7ad541" title="Variabile per la memorizzazione dell&#39;ultima mossa fatta (movimento a destra o sinistra) Serve per dis...">prevDir</a> = <a class="code" href="globali_8h.html#a917cb2ad6b731b390f8c57aa48656211adb45120aafd37a973140edee24708065">LEFT</a>;</div>
<div class="line">                                }</div>
<div class="line">                                <span class="keywordflow">break</span>;</div>
<div class="line">                        <span class="keywordflow">case</span> ALLEGRO_KEY_RIGHT:</div>
<div class="line">                                <span class="keywordflow">if</span>(stato != <a class="code" href="globali_8h.html#af62f0f35361858927524f5221f98b53bab028ae3406afa9f6bf557c41fd7b04aa">FASE_PAUSA</a>)</div>
<div class="line">                                {</div>
<div class="line">                                        <a class="code" href="booblefruit_8cc.html#af20fa3fdc21af9a61bd3c97b60f97292" title="Oggetto di tipo Drago E&#39; l&#39;oggetto che usa il giocatore per interagire con il gioco.">tasti</a>[<a class="code" href="globali_8h.html#a917cb2ad6b731b390f8c57aa48656211aec8379af7490bb9eaaf579cf17876f38">RIGHT</a>] = <span class="keyword">true</span>;</div>
<div class="line">                                        <a class="code" href="booblefruit_8cc.html#ad5ff877f97ce83db08dd3c6905a66330" title="Oggetto di tipo Drago E&#39; l&#39;oggetto che usa il giocatore per interagire con il gioco.">drago</a>.<a class="code" href="structDrago.html#a425cbb3ff8d099f8a993b20fe8fecb07">frameAttuale</a> = 0;</div>
<div class="line">                                        <a class="code" href="booblefruit_8cc.html#ad5ff877f97ce83db08dd3c6905a66330" title="Oggetto di tipo Drago E&#39; l&#39;oggetto che usa il giocatore per interagire con il gioco.">drago</a>.<a class="code" href="structDrago.html#a1e76dfe9fa086b32df87582070857f51">maxFrame</a> = 4;</div>
<div class="line">                                        <a class="code" href="booblefruit_8cc.html#a5c124d5b3fcfa99f576c784f7d7ad541" title="Variabile per la memorizzazione dell&#39;ultima mossa fatta (movimento a destra o sinistra) Serve per dis...">prevDir</a> = <a class="code" href="globali_8h.html#a917cb2ad6b731b390f8c57aa48656211aec8379af7490bb9eaaf579cf17876f38">RIGHT</a>;</div>
<div class="line">                                }</div>
<div class="line">                                <span class="keywordflow">break</span>;</div>
<div class="line">                        <span class="keywordflow">case</span> ALLEGRO_KEY_SPACE:</div>
<div class="line">                                <a class="code" href="booblefruit_8cc.html#af20fa3fdc21af9a61bd3c97b60f97292" title="Oggetto di tipo Drago E&#39; l&#39;oggetto che usa il giocatore per interagire con il gioco.">tasti</a>[<a class="code" href="globali_8h.html#a917cb2ad6b731b390f8c57aa48656211ac08dae7edcb5c5bb959fee5971fbad95">SPACE</a>] = <span class="keyword">true</span>;</div>
<div class="line">                                <span class="keywordflow">if</span>(<a class="code" href="booblefruit_8cc.html#a5c124d5b3fcfa99f576c784f7d7ad541" title="Variabile per la memorizzazione dell&#39;ultima mossa fatta (movimento a destra o sinistra) Serve per dis...">prevDir</a> == RIGHT)</div>
<div class="line">                                {</div>
<div class="line">                                        <a class="code" href="booblefruit_8cc.html#ad5ff877f97ce83db08dd3c6905a66330" title="Oggetto di tipo Drago E&#39; l&#39;oggetto che usa il giocatore per interagire con il gioco.">drago</a>.<a class="code" href="structDrago.html#a425cbb3ff8d099f8a993b20fe8fecb07">frameAttuale</a> = 10;</div>
<div class="line">                                        <a class="code" href="booblefruit_8cc.html#ad5ff877f97ce83db08dd3c6905a66330" title="Oggetto di tipo Drago E&#39; l&#39;oggetto che usa il giocatore per interagire con il gioco.">drago</a>.<a class="code" href="structDrago.html#a1e76dfe9fa086b32df87582070857f51">maxFrame</a> = 10;</div>
<div class="line">                                }</div>
<div class="line">                                <span class="keywordflow">else</span></div>
<div class="line">                                {</div>
<div class="line">                                        <a class="code" href="booblefruit_8cc.html#ad5ff877f97ce83db08dd3c6905a66330" title="Oggetto di tipo Drago E&#39; l&#39;oggetto che usa il giocatore per interagire con il gioco.">drago</a>.<a class="code" href="structDrago.html#a425cbb3ff8d099f8a993b20fe8fecb07">frameAttuale</a> = 12;</div>
<div class="line">                                        <a class="code" href="booblefruit_8cc.html#ad5ff877f97ce83db08dd3c6905a66330" title="Oggetto di tipo Drago E&#39; l&#39;oggetto che usa il giocatore per interagire con il gioco.">drago</a>.<a class="code" href="structDrago.html#a1e76dfe9fa086b32df87582070857f51">maxFrame</a> = 12;</div>
<div class="line">                                }</div>
<div class="line">                                <span class="keywordflow">if</span>(stato == <a class="code" href="globali_8h.html#af62f0f35361858927524f5221f98b53ba56a9dbaf3e0ca086c51f66084ce6f8d8">FASE_TITOLO</a>)</div>
<div class="line">                                        <a class="code" href="booblefruit_8cc.html#acf58f7eb04ef5a5552190ba8effa6fc9" title="Funzione che ci permette di spostarci tra gli stati del gioco.">cambia_stato</a>(stato, <a class="code" href="globali_8h.html#af62f0f35361858927524f5221f98b53ba2dcbf54ba35b01b7e8f7dead719007b1">FASE_GIOCO</a>);</div>
<div class="line">                                <span class="keywordflow">else</span> <span class="keywordflow">if</span>(stato == <a class="code" href="globali_8h.html#af62f0f35361858927524f5221f98b53ba2dcbf54ba35b01b7e8f7dead719007b1">FASE_GIOCO</a>)</div>
<div class="line">                                        <a class="code" href="disegno_8cc.html#a3dd0fe0a872dd3275e418a9b9a0bc72e" title="Rende vivo un oggetto di tipo Viene eseguita per ogni bolla nuova sparata dal drago.">spara_bolle</a>(<a class="code" href="booblefruit_8cc.html#ae0081eba65b03226aa248d54612ca7c7" title="Oggetto di tipo Bolle E&#39; un array di elemento Bolle che sono le armi del drago, per uccidere i robot ...">bolle</a>, <a class="code" href="globali_8h.html#a771817d554e60689c49523c8e9349352" title="Costante del numero di bolle massime gestibili in un array bolle[].">NUM_BOLLE</a>, <a class="code" href="booblefruit_8cc.html#ad5ff877f97ce83db08dd3c6905a66330" title="Oggetto di tipo Drago E&#39; l&#39;oggetto che usa il giocatore per interagire con il gioco.">drago</a>);</div>
<div class="line">                                <span class="keywordflow">else</span> <span class="keywordflow">if</span>(stato == <a class="code" href="globali_8h.html#af62f0f35361858927524f5221f98b53badec336d4ab5871cd726bd28c8ca423bd">FASE_PERSO</a>)</div>
<div class="line">                                        <a class="code" href="booblefruit_8cc.html#acf58f7eb04ef5a5552190ba8effa6fc9" title="Funzione che ci permette di spostarci tra gli stati del gioco.">cambia_stato</a>(stato, <a class="code" href="globali_8h.html#af62f0f35361858927524f5221f98b53ba56a9dbaf3e0ca086c51f66084ce6f8d8">FASE_TITOLO</a>);</div>
<div class="line">                                <span class="keywordflow">break</span>;</div>
<div class="line">                        <span class="keywordflow">case</span> ALLEGRO_KEY_P:</div>
<div class="line">                                <a class="code" href="booblefruit_8cc.html#af20fa3fdc21af9a61bd3c97b60f97292" title="Oggetto di tipo Drago E&#39; l&#39;oggetto che usa il giocatore per interagire con il gioco.">tasti</a>[<a class="code" href="globali_8h.html#a917cb2ad6b731b390f8c57aa48656211a82f05f38f6a17b117cdd2b83227912c6">P</a>] = <span class="keyword">true</span>;</div>
<div class="line">                                <span class="keywordflow">if</span>(stato == <a class="code" href="globali_8h.html#af62f0f35361858927524f5221f98b53ba2dcbf54ba35b01b7e8f7dead719007b1">FASE_GIOCO</a>)</div>
<div class="line">                                {</div>
<div class="line">                                        <a class="code" href="booblefruit_8cc.html#a63da0e90756fc2b6b9af444157e82641" title="Variabile per memorizzare se ci troviamo nella FASE_GIOCO o FASE_PAUSA.">prevStato</a> = <a class="code" href="globali_8h.html#af62f0f35361858927524f5221f98b53ba2dcbf54ba35b01b7e8f7dead719007b1">FASE_GIOCO</a>;</div>
<div class="line">                                        <a class="code" href="booblefruit_8cc.html#acf58f7eb04ef5a5552190ba8effa6fc9" title="Funzione che ci permette di spostarci tra gli stati del gioco.">cambia_stato</a>(stato, <a class="code" href="globali_8h.html#af62f0f35361858927524f5221f98b53bab028ae3406afa9f6bf557c41fd7b04aa">FASE_PAUSA</a>);</div>
<div class="line">                                }</div>
<div class="line">                                <span class="keywordflow">else</span> <span class="keywordflow">if</span>(stato == <a class="code" href="globali_8h.html#af62f0f35361858927524f5221f98b53bab028ae3406afa9f6bf557c41fd7b04aa">FASE_PAUSA</a>)</div>
<div class="line">                                {</div>
<div class="line">                                        <a class="code" href="booblefruit_8cc.html#a63da0e90756fc2b6b9af444157e82641" title="Variabile per memorizzare se ci troviamo nella FASE_GIOCO o FASE_PAUSA.">prevStato</a> = <a class="code" href="globali_8h.html#af62f0f35361858927524f5221f98b53bab028ae3406afa9f6bf557c41fd7b04aa">FASE_PAUSA</a>;</div>
<div class="line">                                        <a class="code" href="booblefruit_8cc.html#acf58f7eb04ef5a5552190ba8effa6fc9" title="Funzione che ci permette di spostarci tra gli stati del gioco.">cambia_stato</a>(stato, <a class="code" href="globali_8h.html#af62f0f35361858927524f5221f98b53ba2dcbf54ba35b01b7e8f7dead719007b1">FASE_GIOCO</a>);</div>
<div class="line">                                }</div>
<div class="line">                        }       </div>
<div class="line">                        </div>
<div class="line">                }</div>
<div class="line">                <span class="keywordflow">else</span> <span class="keywordflow">if</span>(evento.type == ALLEGRO_EVENT_KEY_UP)</div>
<div class="line">                {</div>
<div class="line">                        <span class="keywordflow">switch</span>(evento.keyboard.keycode)</div>
<div class="line">                        {</div>
<div class="line">                        <span class="keywordflow">case</span> ALLEGRO_KEY_ESCAPE:</div>
<div class="line">                                chiudi_finestra= <span class="keyword">true</span>;</div>
<div class="line">                                <span class="keywordflow">break</span>;</div>
<div class="line">                        <span class="keywordflow">case</span> ALLEGRO_KEY_LEFT:</div>
<div class="line">                                <a class="code" href="booblefruit_8cc.html#af20fa3fdc21af9a61bd3c97b60f97292" title="Oggetto di tipo Drago E&#39; l&#39;oggetto che usa il giocatore per interagire con il gioco.">tasti</a>[<a class="code" href="globali_8h.html#a917cb2ad6b731b390f8c57aa48656211adb45120aafd37a973140edee24708065">LEFT</a>] = <span class="keyword">false</span>;</div>
<div class="line">                                <span class="keywordflow">break</span>;</div>
<div class="line">                        <span class="keywordflow">case</span> ALLEGRO_KEY_RIGHT:</div>
<div class="line">                                <a class="code" href="booblefruit_8cc.html#af20fa3fdc21af9a61bd3c97b60f97292" title="Oggetto di tipo Drago E&#39; l&#39;oggetto che usa il giocatore per interagire con il gioco.">tasti</a>[<a class="code" href="globali_8h.html#a917cb2ad6b731b390f8c57aa48656211aec8379af7490bb9eaaf579cf17876f38">RIGHT</a>] = <span class="keyword">false</span>;</div>
<div class="line">                                <span class="keywordflow">break</span>;</div>
<div class="line">                        <span class="keywordflow">case</span> ALLEGRO_KEY_SPACE:</div>
<div class="line">                                <a class="code" href="booblefruit_8cc.html#af20fa3fdc21af9a61bd3c97b60f97292" title="Oggetto di tipo Drago E&#39; l&#39;oggetto che usa il giocatore per interagire con il gioco.">tasti</a>[<a class="code" href="globali_8h.html#a917cb2ad6b731b390f8c57aa48656211ac08dae7edcb5c5bb959fee5971fbad95">SPACE</a>] = <span class="keyword">false</span>;</div>
<div class="line">                        <span class="keywordflow">case</span> ALLEGRO_KEY_P:</div>
<div class="line">                                <a class="code" href="booblefruit_8cc.html#af20fa3fdc21af9a61bd3c97b60f97292" title="Oggetto di tipo Drago E&#39; l&#39;oggetto che usa il giocatore per interagire con il gioco.">tasti</a>[<a class="code" href="globali_8h.html#a917cb2ad6b731b390f8c57aa48656211a82f05f38f6a17b117cdd2b83227912c6">P</a>] = <span class="keyword">false</span>;</div>
<div class="line">                                <span class="keywordflow">break</span>;</div>
<div class="line">                        }</div>
<div class="line">                }</div>
<div class="line">                </div>
<div class="line">                <span class="comment">/*</span></div>
<div class="line"><span class="comment">                 * if(!tasti[LEFT] &amp;&amp; !tasti[RIGHT] &amp;&amp; !tasti[SPACE]) Utilizzo questo if per impostare l&#39;immagine del drago nella posizione da fermo </span></div>
<div class="line"><span class="comment">                 * senza indurre a nessun movimento.</span></div>
<div class="line"><span class="comment">                 */</span></div>
<div class="line">                <span class="keywordflow">if</span>(!<a class="code" href="booblefruit_8cc.html#af20fa3fdc21af9a61bd3c97b60f97292" title="Oggetto di tipo Drago E&#39; l&#39;oggetto che usa il giocatore per interagire con il gioco.">tasti</a>[LEFT] &amp;&amp; !<a class="code" href="booblefruit_8cc.html#af20fa3fdc21af9a61bd3c97b60f97292" title="Oggetto di tipo Drago E&#39; l&#39;oggetto che usa il giocatore per interagire con il gioco.">tasti</a>[RIGHT] &amp;&amp; !<a class="code" href="booblefruit_8cc.html#af20fa3fdc21af9a61bd3c97b60f97292" title="Oggetto di tipo Drago E&#39; l&#39;oggetto che usa il giocatore per interagire con il gioco.">tasti</a>[<a class="code" href="globali_8h.html#a917cb2ad6b731b390f8c57aa48656211ac08dae7edcb5c5bb959fee5971fbad95">SPACE</a>])</div>
<div class="line">                {</div>
<div class="line">                        <a class="code" href="booblefruit_8cc.html#ad5ff877f97ce83db08dd3c6905a66330" title="Oggetto di tipo Drago E&#39; l&#39;oggetto che usa il giocatore per interagire con il gioco.">drago</a>.<a class="code" href="structDrago.html#a425cbb3ff8d099f8a993b20fe8fecb07">frameAttuale</a> = 11;</div>
<div class="line">                        <a class="code" href="booblefruit_8cc.html#ad5ff877f97ce83db08dd3c6905a66330" title="Oggetto di tipo Drago E&#39; l&#39;oggetto che usa il giocatore per interagire con il gioco.">drago</a>.<a class="code" href="structDrago.html#a1e76dfe9fa086b32df87582070857f51">maxFrame</a> = 11;</div>
<div class="line">                }</div>
<div class="line">                </div>
<div class="line">                <span class="comment">/*</span></div>
<div class="line"><span class="comment">                 * E&#39; importante che prima di ridisegnare la nostra coda degli eventi sia vuota</span></div>
<div class="line"><span class="comment">                 * Altrimenti potrebbero crearsi dei disagi durante il ciclo di aggiornamento.</span></div>
<div class="line"><span class="comment">                 * RIdisegnamo la schermata in base alla fase di gioco in cui ci troviamo.</span></div>
<div class="line"><span class="comment">                 */</span></div>
<div class="line">                <span class="keywordflow">if</span>(ridisegna &amp;&amp; al_is_event_queue_empty(coda_eventi))</div>
<div class="line">                {</div>
<div class="line">                        ridisegna = <span class="keyword">false</span>; </div>
<div class="line">                        </div>
<div class="line">                        <span class="keywordflow">if</span>(stato == <a class="code" href="globali_8h.html#af62f0f35361858927524f5221f98b53ba56a9dbaf3e0ca086c51f66084ce6f8d8">FASE_TITOLO</a>)</div>
<div class="line">                        {</div>
<div class="line">                                <a class="code" href="disegno_8cc.html#a4b21e7f00f5ddd9b90446a550ca7969f" title="Viene disegnato lo sfondo nella posizione aggiornata.">disegna_sfondo</a>(STitolo);</div>
<div class="line">                                <a class="code" href="disegno_8cc.html#a4b21e7f00f5ddd9b90446a550ca7969f" title="Viene disegnato lo sfondo nella posizione aggiornata.">disegna_sfondo</a>(T1);</div>
<div class="line">                                <a class="code" href="disegno_8cc.html#a4b21e7f00f5ddd9b90446a550ca7969f" title="Viene disegnato lo sfondo nella posizione aggiornata.">disegna_sfondo</a>(T2);</div>
<div class="line">                                al_draw_textf(font18, al_map_rgb(120, 200, 0), 20, 380, 0, <span class="stringliteral">&quot;PREMI LA BARRA SPAZIATRICE PER PARTIRE&quot;</span>);</div>
<div class="line">                                al_draw_textf(font2,  al_map_rgb(255, 0, 255), 20, 410, 0, <span class="stringliteral">&quot;ISTRUZIONI:&quot;</span>);</div>
<div class="line">                                al_draw_textf(font18, al_map_rgb(250, 200, 255), 20, 440, 0, <span class="stringliteral">&quot;BARRA SPAZIATRICE PER SPARARE&quot;</span>);</div>
<div class="line">                                al_draw_textf(font18, al_map_rgb(250, 200, 255), 20, 460, 0, <span class="stringliteral">&quot;FRECCE DESTRA E SINISTRA PER MUOVERSI&quot;</span>);</div>
<div class="line">                                al_draw_textf(font18, al_map_rgb(250, 200, 255), 20, 480, 0, <span class="stringliteral">&quot;100 pt. per ogni robot ucciso&quot;</span>);</div>
<div class="line">                                al_draw_textf(font18, al_map_rgb(250, 200, 255), 20, 500, 0, <span class="stringliteral">&quot;100 pt per ogni cibo mangiato&quot;</span>);</div>
<div class="line">                                al_draw_textf(font18, al_map_rgb(250, 200, 255), 20, 520, 0, <span class="stringliteral">&quot;-100 pt per ogni cibo ucciso&quot;</span>);</div>
<div class="line">                                al_draw_textf(font18, al_map_rgb(250, 200, 255), 20, 540, 0, <span class="stringliteral">&quot;-1 vita per ogni robot perso&quot;</span>);</div>
<div class="line">                                al_draw_textf(font18, al_map_rgb(250, 200, 255), 20, 560, 0, <span class="stringliteral">&quot;Se arrivi a un pt negativo perdi&quot;</span>);</div>
<div class="line">                                </div>
<div class="line">                                al_draw_textf(font18, al_map_rgb(250, 200, 255), 20, 600, 0, <span class="stringliteral">&quot;PREMI P PER METTERE IN PAUSA&quot;</span>);</div>
<div class="line">                        }</div>
<div class="line">                        <span class="keywordflow">else</span> <span class="keywordflow">if</span>(stato == <a class="code" href="globali_8h.html#af62f0f35361858927524f5221f98b53ba2dcbf54ba35b01b7e8f7dead719007b1">FASE_GIOCO</a>)</div>
<div class="line">                        {</div>
<div class="line">                                <a class="code" href="disegno_8cc.html#a4b21e7f00f5ddd9b90446a550ca7969f" title="Viene disegnato lo sfondo nella posizione aggiornata.">disegna_sfondo</a>(ST);</div>
<div class="line">                                <a class="code" href="disegno_8cc.html#a4b21e7f00f5ddd9b90446a550ca7969f" title="Viene disegnato lo sfondo nella posizione aggiornata.">disegna_sfondo</a>(SD);</div>
<div class="line">                                <a class="code" href="disegno_8cc.html#aa6c42b640747279f681cfd45a9b8f52f" title="Disegna il drago nella posizione corrente, aggiornata ogni volta.">disegna_drago</a>(<a class="code" href="booblefruit_8cc.html#ad5ff877f97ce83db08dd3c6905a66330" title="Oggetto di tipo Drago E&#39; l&#39;oggetto che usa il giocatore per interagire con il gioco.">drago</a>);</div>
<div class="line">                                <a class="code" href="disegno_8cc.html#ab100aa5a1644f16f3baa431895e4ef11" title="Disegna i robot nella posizione aggiornata.">disegna_robot</a>(<a class="code" href="booblefruit_8cc.html#a3658e8c4b8b7295dc44657c5bdb4f59a" title="Oggetto di tipo Robot E&#39; un array di elemento Robot, sono i nemici del giocatore che deve uccidere...">robot</a>, <a class="code" href="globali_8h.html#a3f522072322d8112dc00ae9aea94ed0a" title="Costante del numero di nemici/robot massimi in array nemici[], presenti sullo schermo.">NUM_ROBOTS</a>);</div>
<div class="line">                                <a class="code" href="disegno_8cc.html#a3031997b30b72253964a80c74c1f41aa" title="Disegna la frutta/dolce nella posizione corretta e aggiornata.">disegna_frutta</a>(<a class="code" href="booblefruit_8cc.html#aa58faeb3510409ab3fda79f898914c49" title="Oggetto di tipo Frutta E&#39; un array di elemento Frutta che sono i bonus del drago .">frutta</a>, <a class="code" href="globali_8h.html#a7b2d7007ceeb7bc5683a2ba3a589ff7c" title="Costante del numero di frutta/dolci massimi in array frutta[], presenti sullo schermo.">NUM_FRUTTA</a>);</div>
<div class="line">                                <a class="code" href="disegno_8cc.html#a57e2b7d086631ddb80a0ce9a910504ec" title="Disegna ogni bolla presente sullo schermo nella posizione aggiornata.">disegna_bolle</a>(<a class="code" href="booblefruit_8cc.html#ae0081eba65b03226aa248d54612ca7c7" title="Oggetto di tipo Bolle E&#39; un array di elemento Bolle che sono le armi del drago, per uccidere i robot ...">bolle</a>, <a class="code" href="globali_8h.html#a771817d554e60689c49523c8e9349352" title="Costante del numero di bolle massime gestibili in un array bolle[].">NUM_BOLLE</a>);</div>
<div class="line">                                </div>
<div class="line">                                <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i=0; i&lt;<a class="code" href="booblefruit_8cc.html#ad5ff877f97ce83db08dd3c6905a66330" title="Oggetto di tipo Drago E&#39; l&#39;oggetto che usa il giocatore per interagire con il gioco.">drago</a>.<a class="code" href="structDrago.html#a3ee078b1fc05ba5e3738f201f6aecede" title="l&#39;oggetto ha un numero di vite finite le quali muore">vite</a>; i++)</div>
<div class="line">                                        al_draw_bitmap(cuore, i*30 + 10, 25, 0);</div>
<div class="line">                                </div>
<div class="line">                                al_draw_textf(font18, al_map_rgb(255, 0, 255), 10, 5, 0, <span class="stringliteral">&quot;Vite&quot;</span>);</div>
<div class="line">                                al_draw_textf(font18, al_map_rgb(255, 0, 255), 300, 5, 0, <span class="stringliteral">&quot;Punteggio&quot;</span>);</div>
<div class="line">                                al_draw_textf(font2, al_map_rgb(255, 0, 0), 300, 20, 0, <span class="stringliteral">&quot;%d&quot;</span>, <a class="code" href="booblefruit_8cc.html#ad5ff877f97ce83db08dd3c6905a66330" title="Oggetto di tipo Drago E&#39; l&#39;oggetto che usa il giocatore per interagire con il gioco.">drago</a>.<a class="code" href="structDrago.html#af7c8aef700c3afdb7129e8751c9619e2" title="Score del giocatore.">punti</a>);</div>
<div class="line">                        }</div>
<div class="line">                        <span class="keywordflow">else</span> <span class="keywordflow">if</span>(stato == <a class="code" href="globali_8h.html#af62f0f35361858927524f5221f98b53bab028ae3406afa9f6bf557c41fd7b04aa">FASE_PAUSA</a>)</div>
<div class="line">                        {</div>
<div class="line">                                <a class="code" href="disegno_8cc.html#a4b21e7f00f5ddd9b90446a550ca7969f" title="Viene disegnato lo sfondo nella posizione aggiornata.">disegna_sfondo</a>(ST);</div>
<div class="line">                                <a class="code" href="disegno_8cc.html#a4b21e7f00f5ddd9b90446a550ca7969f" title="Viene disegnato lo sfondo nella posizione aggiornata.">disegna_sfondo</a>(SD);</div>
<div class="line">                                <a class="code" href="disegno_8cc.html#aa6c42b640747279f681cfd45a9b8f52f" title="Disegna il drago nella posizione corrente, aggiornata ogni volta.">disegna_drago</a>(<a class="code" href="booblefruit_8cc.html#ad5ff877f97ce83db08dd3c6905a66330" title="Oggetto di tipo Drago E&#39; l&#39;oggetto che usa il giocatore per interagire con il gioco.">drago</a>);</div>
<div class="line">                                <a class="code" href="disegno_8cc.html#ab100aa5a1644f16f3baa431895e4ef11" title="Disegna i robot nella posizione aggiornata.">disegna_robot</a>(<a class="code" href="booblefruit_8cc.html#a3658e8c4b8b7295dc44657c5bdb4f59a" title="Oggetto di tipo Robot E&#39; un array di elemento Robot, sono i nemici del giocatore che deve uccidere...">robot</a>, <a class="code" href="globali_8h.html#a3f522072322d8112dc00ae9aea94ed0a" title="Costante del numero di nemici/robot massimi in array nemici[], presenti sullo schermo.">NUM_ROBOTS</a>);</div>
<div class="line">                                <a class="code" href="disegno_8cc.html#a3031997b30b72253964a80c74c1f41aa" title="Disegna la frutta/dolce nella posizione corretta e aggiornata.">disegna_frutta</a>(<a class="code" href="booblefruit_8cc.html#aa58faeb3510409ab3fda79f898914c49" title="Oggetto di tipo Frutta E&#39; un array di elemento Frutta che sono i bonus del drago .">frutta</a>, <a class="code" href="globali_8h.html#a7b2d7007ceeb7bc5683a2ba3a589ff7c" title="Costante del numero di frutta/dolci massimi in array frutta[], presenti sullo schermo.">NUM_FRUTTA</a>);</div>
<div class="line">                                <a class="code" href="disegno_8cc.html#a57e2b7d086631ddb80a0ce9a910504ec" title="Disegna ogni bolla presente sullo schermo nella posizione aggiornata.">disegna_bolle</a>(<a class="code" href="booblefruit_8cc.html#ae0081eba65b03226aa248d54612ca7c7" title="Oggetto di tipo Bolle E&#39; un array di elemento Bolle che sono le armi del drago, per uccidere i robot ...">bolle</a>, <a class="code" href="globali_8h.html#a771817d554e60689c49523c8e9349352" title="Costante del numero di bolle massime gestibili in un array bolle[].">NUM_BOLLE</a>);</div>
<div class="line">                                </div>
<div class="line">                                <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i=0; i&lt;<a class="code" href="booblefruit_8cc.html#ad5ff877f97ce83db08dd3c6905a66330" title="Oggetto di tipo Drago E&#39; l&#39;oggetto che usa il giocatore per interagire con il gioco.">drago</a>.<a class="code" href="structDrago.html#a3ee078b1fc05ba5e3738f201f6aecede" title="l&#39;oggetto ha un numero di vite finite le quali muore">vite</a>; i++)</div>
<div class="line">                                        al_draw_bitmap(cuore, i*30 + 10, 25, 0);</div>
<div class="line">                                </div>
<div class="line">                                al_draw_textf(font18, al_map_rgb(255, 0, 255), 10, 5, 0, <span class="stringliteral">&quot;Vite&quot;</span>);</div>
<div class="line">                                al_draw_textf(font18, al_map_rgb(255, 0, 255), 300, 5, 0, <span class="stringliteral">&quot;Punteggio&quot;</span>);</div>
<div class="line">                                al_draw_textf(font2, al_map_rgb(255, 0, 0), 300, 20, 0, <span class="stringliteral">&quot;%d&quot;</span>, <a class="code" href="booblefruit_8cc.html#ad5ff877f97ce83db08dd3c6905a66330" title="Oggetto di tipo Drago E&#39; l&#39;oggetto che usa il giocatore per interagire con il gioco.">drago</a>.<a class="code" href="structDrago.html#af7c8aef700c3afdb7129e8751c9619e2" title="Score del giocatore.">punti</a>);</div>
<div class="line">                        </div>
<div class="line">                                al_draw_textf(font17, al_map_rgb(0, 255, 0), <a class="code" href="globali_8h.html#a9649ab8139c4c2ea5c93625b30d92a05" title="Largezza della finestra di gioco.">WIDTH</a>/2, <a class="code" href="globali_8h.html#af728b7647e0b8c49832983a31f9a2e9b" title="Altezza della finstra di gioco.">HEIGHT</a>/2, ALLEGRO_ALIGN_CENTRE, <span class="stringliteral">&quot;PAUSA&quot;</span>);</div>
<div class="line">                        }</div>
<div class="line">                        <span class="keywordflow">else</span> <span class="keywordflow">if</span>(stato == <a class="code" href="globali_8h.html#af62f0f35361858927524f5221f98b53badec336d4ab5871cd726bd28c8ca423bd">FASE_PERSO</a>)</div>
<div class="line">                        {</div>
<div class="line">                                <a class="code" href="disegno_8cc.html#a4b21e7f00f5ddd9b90446a550ca7969f" title="Viene disegnato lo sfondo nella posizione aggiornata.">disegna_sfondo</a>(SPerso);</div>
<div class="line">                                al_draw_textf(font4, al_map_rgb(153, 102, 204), <a class="code" href="globali_8h.html#a9649ab8139c4c2ea5c93625b30d92a05" title="Largezza della finestra di gioco.">WIDTH</a>/2, <a class="code" href="globali_8h.html#af728b7647e0b8c49832983a31f9a2e9b" title="Altezza della finstra di gioco.">HEIGHT</a>/2 - 100, ALLEGRO_ALIGN_CENTRE, <span class="stringliteral">&quot;Hai&quot;</span>);</div>
<div class="line">                                al_draw_textf(font4, al_map_rgb(153, 102, 204), <a class="code" href="globali_8h.html#a9649ab8139c4c2ea5c93625b30d92a05" title="Largezza della finestra di gioco.">WIDTH</a>/2, <a class="code" href="globali_8h.html#af728b7647e0b8c49832983a31f9a2e9b" title="Altezza della finstra di gioco.">HEIGHT</a>/2 - 50, ALLEGRO_ALIGN_CENTRE, <span class="stringliteral">&quot;totalizzato&quot;</span>);</div>
<div class="line">                                al_draw_textf(font4, al_map_rgb(246, 172, 0), <a class="code" href="globali_8h.html#a9649ab8139c4c2ea5c93625b30d92a05" title="Largezza della finestra di gioco.">WIDTH</a>/2, <a class="code" href="globali_8h.html#af728b7647e0b8c49832983a31f9a2e9b" title="Altezza della finstra di gioco.">HEIGHT</a>/2 + 10, ALLEGRO_ALIGN_CENTRE, <span class="stringliteral">&quot;%d&quot;</span>, <a class="code" href="booblefruit_8cc.html#ad5ff877f97ce83db08dd3c6905a66330" title="Oggetto di tipo Drago E&#39; l&#39;oggetto che usa il giocatore per interagire con il gioco.">drago</a>.<a class="code" href="structDrago.html#af7c8aef700c3afdb7129e8751c9619e2" title="Score del giocatore.">punti</a>);</div>
<div class="line">                                al_draw_textf(font4, al_map_rgb(153, 102, 204), <a class="code" href="globali_8h.html#a9649ab8139c4c2ea5c93625b30d92a05" title="Largezza della finestra di gioco.">WIDTH</a>/2, <a class="code" href="globali_8h.html#af728b7647e0b8c49832983a31f9a2e9b" title="Altezza della finstra di gioco.">HEIGHT</a>/2 + 90, ALLEGRO_ALIGN_CENTRE, <span class="stringliteral">&quot;punti&quot;</span>, <a class="code" href="booblefruit_8cc.html#ad5ff877f97ce83db08dd3c6905a66330" title="Oggetto di tipo Drago E&#39; l&#39;oggetto che usa il giocatore per interagire con il gioco.">drago</a>.<a class="code" href="structDrago.html#af7c8aef700c3afdb7129e8751c9619e2" title="Score del giocatore.">punti</a>);</div>
<div class="line">                                </div>
<div class="line">                                al_draw_textf(font18, al_map_rgb(120, 200, 255), <a class="code" href="globali_8h.html#a9649ab8139c4c2ea5c93625b30d92a05" title="Largezza della finestra di gioco.">WIDTH</a>/2, <a class="code" href="globali_8h.html#af728b7647e0b8c49832983a31f9a2e9b" title="Altezza della finstra di gioco.">HEIGHT</a>/2 + 200, ALLEGRO_ALIGN_CENTRE, <span class="stringliteral">&quot;PREMI LA BARRA SPAZIATRICE &quot;</span>);</div>
<div class="line">                        }</div>
<div class="line">                </div>
<div class="line">                        al_flip_display();</div>
<div class="line">                        al_clear_to_color(al_map_rgb(0,0,0));</div>
<div class="line">                }</div>
<div class="line">        }</div>
<div class="line">         </div>
<div class="line"></div>
<div class="line">        <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i=0; i&lt;13; i++)</div>
<div class="line">                al_destroy_bitmap(<a class="code" href="booblefruit_8cc.html#abc2af28df56e2e0ce8b168bd4d191ec7" title="Array che contiene gli oggetti di tipo Bolle.">giocatore</a>[i]);</div>
<div class="line">        <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i=0; i&lt;4; i++)</div>
<div class="line">                al_destroy_bitmap(<a class="code" href="booblefruit_8cc.html#a53a1899713585c2d69c1cede0220720f" title="Array che contiene gli oggetti di tipo Robot.">nemici</a>[i]);</div>
<div class="line">        <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i=0; i&lt;6; i++)</div>
<div class="line">                al_destroy_bitmap(<a class="code" href="booblefruit_8cc.html#ab23f35d0e343e30c72d88e5e7cfebe14" title="Array che contiene gli oggetti di tipo Frutta.">bonus</a>[i]);    </div>
<div class="line">                </div>
<div class="line">        <span class="comment">/*</span></div>
<div class="line"><span class="comment">         * al_destroy_... Distruggiamo tutti gli oggetti creti nel corso del programma, tra cui gli audio e le immagini</span></div>
<div class="line"><span class="comment">         * onde evitare il memory leak.</span></div>
<div class="line"><span class="comment">         */</span>     </div>
<div class="line">        al_destroy_sample(<a class="code" href="booblefruit_8cc.html#acd20d53d39c635e615b4e641868c60cf" title="Musica ripodotta durante lo sparo della bolle.">spara</a>);</div>
<div class="line">        al_destroy_sample(<a class="code" href="booblefruit_8cc.html#a49ea5e90bd2372ea1f2b7e0e62d19369" title="Musica riprodotta in loop durante la FASE_TITOLO.">titolo</a>);</div>
<div class="line">        al_destroy_sample(<a class="code" href="booblefruit_8cc.html#a2bf1b54583bd7383aad64beeec966e8b" title="Musica riprodotta in loop durante la FASE_GIOCO.">bobblefruit</a>);</div>
<div class="line">        al_destroy_sample(<a class="code" href="booblefruit_8cc.html#a86e9b2d51f514215e3748d8a4802b2a3" title="Musica riprodotta una volta sola durante la FASE_PERSO.">perso</a>);</div>
<div class="line">        al_destroy_sample_instance(<a class="code" href="booblefruit_8cc.html#acca6d7935496e6fb1b09221ef3f5572e" title="E&#39; una &quot;Playable Instance&quot;.">canzoneGioco</a>);</div>
<div class="line">        al_destroy_sample_instance(<a class="code" href="booblefruit_8cc.html#a456a1efd048535a34867aaeeb6e03aff" title="E&#39; una &quot;Playable Instance&quot;.">canzoneTitolo</a>);</div>
<div class="line">        al_destroy_event_queue(coda_eventi);</div>
<div class="line">        al_destroy_timer(timer);</div>
<div class="line">        al_destroy_font(font18);</div>
<div class="line">        al_destroy_font(font17);</div>
<div class="line">        al_destroy_font(font2);</div>
<div class="line">        al_destroy_font(font4);</div>
<div class="line">        al_destroy_display(display);                                            </div>
<div class="line">        al_destroy_bitmap(sfondo2);</div>
<div class="line">        al_destroy_bitmap(sfondo1);</div>
<div class="line">        al_destroy_bitmap(sfondotitolo);</div>
<div class="line">        al_destroy_bitmap(sfondoperso);</div>
<div class="line">        al_destroy_bitmap(cuore);</div>
<div class="line"></div>
<div class="line">        </div>
<div class="line">        <span class="keywordflow">return</span> 0;</div>
<div class="line">}</div>
</div><!-- fragment -->
</div>
</div>
<h2>Documentazione delle variabili</h2>
<a class="anchor" id="a2bf1b54583bd7383aad64beeec966e8b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ALLEGRO_SAMPLE* bobblefruit = NULL</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Musica riprodotta in loop durante la <a class="el" href="globali_8h.html#af62f0f35361858927524f5221f98b53ba2dcbf54ba35b01b7e8f7dead719007b1">FASE_GIOCO</a>. </p>

</div>
</div>
<a class="anchor" id="ae0081eba65b03226aa248d54612ca7c7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structBolle.html">Bolle</a> bolle[<a class="el" href="globali_8h.html#a771817d554e60689c49523c8e9349352">NUM_BOLLE</a>]</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Oggetto di tipo <a class="el" href="structBolle.html">Bolle</a> E' un array di elemento <a class="el" href="structBolle.html">Bolle</a> che sono le armi del <a class="el" href="globali_8h.html#ad5ff877f97ce83db08dd3c6905a66330" title="Oggetto di tipo Drago E&#39; l&#39;oggetto che usa il giocatore per interagire con il gioco.">drago</a>, per uccidere i <a class="el" href="globali_8h.html#a3658e8c4b8b7295dc44657c5bdb4f59a" title="Oggetto di tipo Robot E&#39; un array di elemento Robot, sono i nemici del giocatore che deve uccidere...">robot</a> . </p>
<p>Può inoltre uccidere la frutta/dolci ma è sconveniente per fa perdere punti. </p>

</div>
</div>
<a class="anchor" id="ab23f35d0e343e30c72d88e5e7cfebe14"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ALLEGRO_BITMAP* bonus[6]</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Array che contiene gli oggetti di tipo <a class="el" href="structFrutta.html">Frutta</a>. </p>

</div>
</div>
<a class="anchor" id="acca6d7935496e6fb1b09221ef3f5572e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ALLEGRO_SAMPLE_INSTANCE* canzoneGioco = NULL</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>E' una "Playable Instance". </p>
<p>Fa riferimento a <a class="el" href="globali_8h.html#a2bf1b54583bd7383aad64beeec966e8b" title="Musica riprodotta in loop durante la FASE_GIOCO.">bobblefruit</a> e mantiene le informazioni per il loop </p>

</div>
</div>
<a class="anchor" id="a456a1efd048535a34867aaeeb6e03aff"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ALLEGRO_SAMPLE_INSTANCE* canzoneTitolo = NULL</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>E' una "Playable Instance". </p>
<p>Fa riferimento a <a class="el" href="globali_8h.html#a49ea5e90bd2372ea1f2b7e0e62d19369" title="Musica riprodotta in loop durante la FASE_TITOLO.">titolo</a> e mantiene le informazioni per il loop </p>

</div>
</div>
<a class="anchor" id="ad5ff877f97ce83db08dd3c6905a66330"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structDrago.html">Drago</a> drago</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Oggetto di tipo <a class="el" href="structDrago.html">Drago</a> E' l'oggetto che usa il giocatore per interagire con il gioco. </p>
<p>Può sparare delle bolle, oppure spostarsi a destra o a sinistra, tramite le apposite funzioni. </p>

</div>
</div>
<a class="anchor" id="aa58faeb3510409ab3fda79f898914c49"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structFrutta.html">Frutta</a> frutta[<a class="el" href="globali_8h.html#a7b2d7007ceeb7bc5683a2ba3a589ff7c">NUM_FRUTTA</a>]</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Oggetto di tipo <a class="el" href="structFrutta.html">Frutta</a> E' un array di elemento <a class="el" href="structFrutta.html">Frutta</a> che sono i bonus del <a class="el" href="globali_8h.html#ad5ff877f97ce83db08dd3c6905a66330" title="Oggetto di tipo Drago E&#39; l&#39;oggetto che usa il giocatore per interagire con il gioco.">drago</a> . </p>
<p>Sono i bonus del drago se presi e non lasciati cadere o uccisi. Se sono lasciati cadere non succede niente, se uccisi si perdono punti. Onde evitare che il giocatore spari bolle a raffica. Inoltre portano a un punteggio negativo che uccide il drago. </p>

</div>
</div>
<a class="anchor" id="abc2af28df56e2e0ce8b168bd4d191ec7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ALLEGRO_BITMAP* giocatore[13]</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Array che contiene gli oggetti di tipo <a class="el" href="structBolle.html">Bolle</a>. </p>

</div>
</div>
<a class="anchor" id="a53a1899713585c2d69c1cede0220720f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ALLEGRO_BITMAP* nemici[4]</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Array che contiene gli oggetti di tipo <a class="el" href="structRobot.html">Robot</a>. </p>

</div>
</div>
<a class="anchor" id="a86e9b2d51f514215e3748d8a4802b2a3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ALLEGRO_SAMPLE* perso = NULL</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Musica riprodotta una volta sola durante la <a class="el" href="globali_8h.html#af62f0f35361858927524f5221f98b53badec336d4ab5871cd726bd28c8ca423bd">FASE_PERSO</a>. </p>

</div>
</div>
<a class="anchor" id="a5c124d5b3fcfa99f576c784f7d7ad541"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int prevDir = <a class="el" href="globali_8h.html#a917cb2ad6b731b390f8c57aa48656211aec8379af7490bb9eaaf579cf17876f38">RIGHT</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Variabile per la memorizzazione dell'ultima mossa fatta (movimento a destra o sinistra) Serve per disegnare la posizione del drago a destra o seinistra mentre spara le bolle, in base a quale era la sua posizione precende (mentre si muoveva). </p>

</div>
</div>
<a class="anchor" id="a63da0e90756fc2b6b9af444157e82641"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int prevStato = <a class="el" href="globali_8h.html#af62f0f35361858927524f5221f98b53ba2dcbf54ba35b01b7e8f7dead719007b1">FASE_GIOCO</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Variabile per memorizzare se ci troviamo nella <a class="el" href="globali_8h.html#af62f0f35361858927524f5221f98b53ba2dcbf54ba35b01b7e8f7dead719007b1">FASE_GIOCO</a> o <a class="el" href="globali_8h.html#af62f0f35361858927524f5221f98b53bab028ae3406afa9f6bf557c41fd7b04aa">FASE_PAUSA</a>. </p>
<p>Serve per intercambiare gli stati Pausa e Gioco in modo da poter tornare alla fase gioco dalla fase pausa, e viceversa. </p>

</div>
</div>
<a class="anchor" id="a3658e8c4b8b7295dc44657c5bdb4f59a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structRobot.html">Robot</a> robot[<a class="el" href="globali_8h.html#a3f522072322d8112dc00ae9aea94ed0a">NUM_ROBOTS</a>]</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Oggetto di tipo <a class="el" href="structRobot.html">Robot</a> E' un array di elemento <a class="el" href="structRobot.html">Robot</a>, sono i nemici del giocatore che deve uccidere, per guadagnare punti. </p>
<p>Se persi oppure se toccano il drago, quest'ultimo perderà una vita. </p>

</div>
</div>
<a class="anchor" id="acd20d53d39c635e615b4e641868c60cf"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ALLEGRO_SAMPLE* spara = NULL</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Musica ripodotta durante lo sparo della bolle. </p>

</div>
</div>
<a class="anchor" id="af20fa3fdc21af9a61bd3c97b60f97292"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool tasti[4] = {false, false, false, false}</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Oggetto di tipo <a class="el" href="structDrago.html">Drago</a> E' l'oggetto che usa il giocatore per interagire con il gioco. </p>
<p>Può sparare delle bolle, oppure spostarsi a destra o a sinistra, tramite le apposite funzioni.Array collegato all'enumeratore <a class="el" href="globali_8h.html#a917cb2ad6b731b390f8c57aa48656211" title="Tasti che sono presi in considerazione nel gioco.">KEYS</a> </p>

</div>
</div>
<a class="anchor" id="a49ea5e90bd2372ea1f2b7e0e62d19369"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ALLEGRO_SAMPLE* titolo = NULL</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Musica riprodotta in loop durante la <a class="el" href="globali_8h.html#af62f0f35361858927524f5221f98b53ba56a9dbaf3e0ca086c51f66084ce6f8d8">FASE_TITOLO</a>. </p>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generato Gio 6 Giu 2013 22:22:02 per Bobble Fruit da &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.1.2
</small></address>
</body>
</html>
